Pascal Serrarens 17741d862a First commit
2022-01-12 10:50:57 +01:00

486 lines
25 KiB
C#

using UnityEngine;
#if ENABLE_INPUT_SYSTEM
using UnityEngine.InputSystem;
#endif
namespace Passer {
public class TraditionalDevice {
private Controller controller;
public static bool gameControllerEnabled = true;
public void Clear() {
controller.Clear();
}
public Controller SetControllerID(int controllerID) {
InitAxis(controllerID);
controller = Controllers.GetController(controllerID);
return controller;
}
public enum LeftRight {
Left,
Right
}
#region mouse
public LeftRight mouseIsControllerStick = LeftRight.Right;
public bool mouseAccumulation = true;
private float mouseSensitivity = 0.1F;
private float mouseX;
private float mouseY;
private void UpdateMouse() {
if (!mouseAccumulation) {
mouseX = 0;
mouseY = 0;
mouseSensitivity = 10F;
}
else {
mouseSensitivity = 0.1F;
}
mouseX += UnityEngine.Input.GetAxis("Mouse X") * mouseSensitivity;
mouseY += UnityEngine.Input.GetAxis("Mouse Y") * mouseSensitivity;
if (mouseIsControllerStick == LeftRight.Left) {
controller.left.stickHorizontal = controller.left.stickHorizontal + mouseX;
controller.left.stickVertical = controller.left.stickVertical + mouseY;
//controller.left.left = mouseX < 0;
//controller.left.right = mouseX > 0;
//controller.left.up = mouseY > 0;
//controller.left.down = mouseY < 0;
}
else {
controller.right.stickHorizontal = controller.right.stickHorizontal + mouseX;
controller.right.stickVertical = controller.right.stickVertical + mouseY;
//controller.right.left = mouseX < 0;
//controller.right.right = mouseX > 0;
//controller.right.up = mouseY > 0;
//controller.right.down = mouseY < 0;
}
controller.right.buttons[0] |= UnityEngine.Input.GetMouseButton(0);
controller.right.buttons[1] |= UnityEngine.Input.GetMouseButton(1);
controller.right.buttons[2] |= UnityEngine.Input.GetMouseButton(2);
}
#endregion
#region GameController
public void UpdateGameController(GameControllers gameController) {
if (controller == null)
return;
#if ENABLE_INPUT_SYSTEM
UpdateInputSystemGamepad();
#endif
#if !UNITY_2019_2_OR_NEWER || ENABLE_LEGACY_INPUT_MANAGER
switch (gameController) {
case GameControllers.Xbox:
UpdateXboxController();
break;
case GameControllers.PS4:
UpdatePS4Controller();
break;
case GameControllers.Steelseries:
UpdateSteelseriesController();
break;
case GameControllers.GameSmart:
UpdateGameSmartController();
break;
case GameControllers.Oculus:
UpdateOculusController();
break;
case GameControllers.OpenVR:
UpdateOpenVRController();
break;
#if hDAYDREAM && UNITY_ANDROID
case GameControllers.Daydream:
UpdateDaydreamController();
break;
#endif
default:
UpdateGenericController();
break;
}
#endif
}
#if ENABLE_INPUT_SYSTEM
public void UpdateInputSystemGamepad() {
if (Gamepad.current == null)
return;
controller.left.stickHorizontal = Mathf.Clamp(controller.left.stickHorizontal +
Gamepad.current.leftStick.x.ReadValue(),
-1, 1);
controller.left.stickVertical = Mathf.Clamp(controller.left.stickHorizontal +
Gamepad.current.leftStick.y.ReadValue(),
-1, 1);
controller.left.stickButton |= Gamepad.current.leftStickButton.ReadValue() > 0.5F;
controller.left.touchpadHorizontal = Mathf.Clamp(controller.left.touchpadHorizontal +
Gamepad.current.dpad.x.ReadValue(),
-1, 1);
controller.left.touchpadVertical = Mathf.Clamp(controller.left.touchpadVertical +
Gamepad.current.dpad.y.ReadValue(),
-1, 1);
controller.right.stickHorizontal = Mathf.Clamp(controller.right.stickHorizontal +
Gamepad.current.rightStick.x.ReadValue(),
-1, 1);
controller.right.stickVertical = Mathf.Clamp(controller.right.stickHorizontal +
Gamepad.current.rightStick.y.ReadValue(),
-1, 1);
controller.right.stickButton |= Gamepad.current.rightStickButton.ReadValue() > 0.5F;
controller.right.buttons[0] |= Gamepad.current.buttonSouth.ReadValue() > 0.5F;
controller.right.buttons[1] |= Gamepad.current.buttonEast.ReadValue() > 0.5F;
controller.right.buttons[2] |= Gamepad.current.buttonWest.ReadValue() > 0.5F;
controller.right.buttons[3] |= Gamepad.current.buttonNorth.ReadValue() > 0.5F;
controller.left.trigger1 = Mathf.Clamp(controller.left.trigger1 +
Gamepad.current.leftTrigger.ReadValue(),
-1, 1);
controller.left.trigger2 = Mathf.Clamp(controller.left.trigger2 +
Gamepad.current.leftShoulder.ReadValue(),
-1, 1);
controller.right.trigger1 = Mathf.Clamp(controller.right.trigger1 +
Gamepad.current.rightTrigger.ReadValue(),
-1, 1);
controller.right.trigger2 = Mathf.Clamp(controller.right.trigger2 +
Gamepad.current.rightShoulder.ReadValue(),
-1, 1);
controller.left.option |= Gamepad.current.startButton.ReadValue() > 0.5F;
controller.right.option |= Gamepad.current.selectButton.ReadValue() > 0.5F;
}
#endif
#if !UNITY_2019_2_OR_NEWER || ENABLE_LEGACY_INPUT_MANAGER
public void UpdateGenericController() {
if (axisAvailable[0] && axisAvailable[1]) {
controller.left.stickHorizontal = Mathf.Clamp(controller.left.stickHorizontal + Input.GetAxis(axisName[0]), -1, 1);
controller.left.stickVertical = Mathf.Clamp(controller.left.stickVertical + Input.GetAxis(axisName[1]), -1, 1);
}
controller.right.buttons[0] |= Input.GetKey(KeyCode.JoystickButton0);
controller.right.buttons[1] |= Input.GetKey(KeyCode.JoystickButton1);
controller.right.buttons[2] |= Input.GetKey(KeyCode.JoystickButton2);
controller.right.buttons[3] |= Input.GetKey(KeyCode.JoystickButton3);
}
public void UpdateXboxController() {
if (axisAvailable[0] && axisAvailable[1]) {
controller.left.stickHorizontal = Mathf.Clamp(controller.left.stickHorizontal + Input.GetAxis(axisName[0]), -1, 1);
controller.left.stickVertical = Mathf.Clamp(controller.left.stickVertical + Input.GetAxis(axisName[1]), -1, 1);
}
//if (axisAvailable[5] && axisAvailable[6]) {
// controller.left.left |= UnityEngine.Input.GetAxis(axisName[5]) < 0;
// controller.left.right |= UnityEngine.Input.GetAxis(axisName[5]) > 0;
// controller.left.up |= UnityEngine.Input.GetAxis(axisName[6]) > 0;
// controller.left.down |= UnityEngine.Input.GetAxis(axisName[6]) < 0;
//}
if (axisAvailable[3] && axisAvailable[4]) {
controller.right.stickHorizontal = Mathf.Clamp(controller.right.stickHorizontal + Input.GetAxis(axisName[3]), -1, 1);
controller.right.stickVertical = Mathf.Clamp(controller.right.stickVertical + Input.GetAxis(axisName[4]), -1, 1);
}
if (axisAvailable[8] && axisAvailable[9]) {
controller.left.trigger2 = Mathf.Clamp(controller.left.trigger2 + Input.GetAxis(axisName[8]), -1, 1);
controller.right.trigger2 = Mathf.Clamp(controller.right.trigger2 + Input.GetAxis(axisName[9]), -1, 1);
}
controller.left.trigger1 = Mathf.Clamp(controller.left.trigger1 + (Input.GetKey(KeyCode.JoystickButton4) ? 1 : 0), -1, 1);
controller.right.trigger1 = Mathf.Clamp(controller.right.trigger1 + (Input.GetKey(KeyCode.JoystickButton5) ? 1 : 0), -1, 1);
// Except for the bumpers, Xbox buttons are trigger butons. No info is sent that the button is held down.
controller.left.option |= Input.GetKey(KeyCode.JoystickButton6);
controller.right.option |= Input.GetKey(KeyCode.JoystickButton7);
controller.right.buttons[0] |= Input.GetKey(KeyCode.JoystickButton0);
controller.right.buttons[1] |= Input.GetKey(KeyCode.JoystickButton1);
controller.right.buttons[2] |= Input.GetKey(KeyCode.JoystickButton2);
controller.right.buttons[3] |= Input.GetKey(KeyCode.JoystickButton3);
controller.left.stickButton |= Input.GetKey(KeyCode.JoystickButton8);
controller.right.stickButton |= Input.GetKey(KeyCode.JoystickButton9);
}
public void UpdatePS4Controller() {
if (axisAvailable[0] && axisAvailable[1]) {
controller.left.stickHorizontal = Mathf.Clamp(controller.left.stickHorizontal + UnityEngine.Input.GetAxis(axisName[0]), -1, 1);
controller.left.stickVertical = Mathf.Clamp(controller.left.stickVertical + UnityEngine.Input.GetAxis(axisName[1]), -1, 1);
}
//if (axisAvailable[6] && axisAvailable[7]) {
// controller.left.left |= UnityEngine.Input.GetAxis(axisName[6]) < 0;
// controller.left.right |= UnityEngine.Input.GetAxis(axisName[6]) > 0;
// controller.left.up |= UnityEngine.Input.GetAxis(axisName[7]) > 0;
// controller.left.down |= UnityEngine.Input.GetAxis(axisName[7]) < 0;
//}
if (axisAvailable[2] && axisAvailable[5]) {
controller.right.stickHorizontal = Mathf.Clamp(controller.right.stickHorizontal + UnityEngine.Input.GetAxis(axisName[2]), -1, 1);
controller.right.stickVertical = Mathf.Clamp(controller.right.stickVertical + UnityEngine.Input.GetAxis(axisName[5]), -1, 1);
}
if (axisAvailable[3] && axisAvailable[4]) {
controller.left.trigger2 = Mathf.Clamp(controller.left.trigger2 + UnityEngine.Input.GetAxis(axisName[3]), -1, 1);
controller.right.trigger2 = Mathf.Clamp(controller.right.trigger2 + UnityEngine.Input.GetAxis(axisName[4]), -1, 1);
}
controller.left.trigger1 = Mathf.Clamp(controller.left.trigger1 + (UnityEngine.Input.GetKey(KeyCode.JoystickButton4) ? 1 : 0), -1, 1);
controller.right.trigger1 = Mathf.Clamp(controller.right.trigger1 + (UnityEngine.Input.GetKey(KeyCode.JoystickButton5) ? 1 : 0), -1, 1);
controller.left.option |= UnityEngine.Input.GetKey(KeyCode.JoystickButton8);
controller.right.option |= UnityEngine.Input.GetKey(KeyCode.JoystickButton9);
controller.right.buttons[0] |= UnityEngine.Input.GetKey(KeyCode.JoystickButton1);
controller.right.buttons[1] |= UnityEngine.Input.GetKey(KeyCode.JoystickButton2);
controller.right.buttons[2] |= UnityEngine.Input.GetKey(KeyCode.JoystickButton0);
controller.right.buttons[3] |= UnityEngine.Input.GetKey(KeyCode.JoystickButton3);
controller.left.stickButton |= UnityEngine.Input.GetKey(KeyCode.JoystickButton10);
controller.right.stickButton |= UnityEngine.Input.GetKey(KeyCode.JoystickButton11);
}
public void UpdateSteelseriesController() {
controller.left.stickHorizontal = Mathf.Clamp(controller.left.stickHorizontal + UnityEngine.Input.GetAxis(axisName[0]), -1, 1);
controller.left.stickVertical = Mathf.Clamp(controller.left.stickVertical + UnityEngine.Input.GetAxis(axisName[1]), -1, 1);
//if (axisAvailable[4] && axisAvailable[5]) {
// controller.left.left |= UnityEngine.Input.GetAxis(axisName[4]) < 0;
// controller.left.right |= UnityEngine.Input.GetAxis(axisName[4]) > 0;
// controller.left.up |= UnityEngine.Input.GetAxis(axisName[5]) > 0;
// controller.left.down |= UnityEngine.Input.GetAxis(axisName[5]) < 0;
//}
if (axisAvailable[2] && axisAvailable[3]) {
controller.right.stickHorizontal = Mathf.Clamp(controller.right.stickHorizontal + UnityEngine.Input.GetAxis(axisName[2]), -1, 1);
controller.right.stickVertical = Mathf.Clamp(controller.right.stickVertical + UnityEngine.Input.GetAxis(axisName[3]), -1, 1);
}
if (axisAvailable[12] && axisAvailable[11]) {
controller.left.trigger2 = Mathf.Clamp(controller.left.trigger2 + UnityEngine.Input.GetAxis(axisName[12]), -1, 1);
controller.right.trigger2 = Mathf.Clamp(controller.right.trigger2 + UnityEngine.Input.GetAxis(axisName[11]), -1, 1);
}
controller.left.trigger1 = Mathf.Clamp(controller.left.trigger1 + (UnityEngine.Input.GetKey(KeyCode.JoystickButton4) ? 1 : 0), -1, 1);
controller.right.trigger1 = Mathf.Clamp(controller.right.trigger1 + (UnityEngine.Input.GetKey(KeyCode.JoystickButton5) ? 1 : 0), -1, 1);
controller.left.option |= UnityEngine.Input.GetKey(KeyCode.JoystickButton10);
controller.right.buttons[0] |= UnityEngine.Input.GetKey(KeyCode.JoystickButton0);
controller.right.buttons[1] |= UnityEngine.Input.GetKey(KeyCode.JoystickButton1);
controller.right.buttons[2] |= UnityEngine.Input.GetKey(KeyCode.JoystickButton2);
controller.right.buttons[3] |= UnityEngine.Input.GetKey(KeyCode.JoystickButton3);
controller.left.stickButton |= UnityEngine.Input.GetKey(KeyCode.JoystickButton8);
controller.right.stickButton |= UnityEngine.Input.GetKey(KeyCode.JoystickButton9);
}
public void UpdateGameSmartController() {
controller.left.stickHorizontal = Mathf.Clamp(controller.left.stickHorizontal + UnityEngine.Input.GetAxis(axisName[0]), -1, 1);
controller.left.stickVertical = Mathf.Clamp(controller.left.stickVertical + UnityEngine.Input.GetAxis(axisName[1]), -1, 1);
//if (axisAvailable[4] && axisAvailable[5]) {
// controller.left.left |= UnityEngine.Input.GetAxis(axisName[4]) < 0;
// controller.left.right |= UnityEngine.Input.GetAxis(axisName[4]) > 0;
// controller.left.up |= UnityEngine.Input.GetAxis(axisName[5]) > 0;
// controller.left.down |= UnityEngine.Input.GetAxis(axisName[5]) < 0;
//}
if (axisAvailable[2] && axisAvailable[3]) {
controller.right.stickHorizontal = Mathf.Clamp(controller.right.stickHorizontal + UnityEngine.Input.GetAxis(axisName[2]), -1, 1);
controller.right.stickVertical = Mathf.Clamp(controller.right.stickVertical - UnityEngine.Input.GetAxis(axisName[3]), -1, 1);
}
controller.left.trigger2 = Mathf.Clamp(controller.left.trigger2 + (UnityEngine.Input.GetKey(KeyCode.JoystickButton6) ? 1 : 0), -1, 1);
controller.right.trigger2 = Mathf.Clamp(controller.right.trigger2 + (UnityEngine.Input.GetKey(KeyCode.JoystickButton7) ? 1 : 0), -1, 1);
controller.left.trigger1 = Mathf.Clamp(controller.left.trigger1 + (UnityEngine.Input.GetKey(KeyCode.JoystickButton4) ? 1 : 0), -1, 1);
controller.right.trigger1 = Mathf.Clamp(controller.right.trigger1 + (UnityEngine.Input.GetKey(KeyCode.JoystickButton5) ? 1 : 0), -1, 1);
controller.left.option |= UnityEngine.Input.GetKey(KeyCode.JoystickButton8);
controller.right.option |= UnityEngine.Input.GetKey(KeyCode.JoystickButton9);
controller.right.buttons[0] |= UnityEngine.Input.GetKey(KeyCode.JoystickButton1);
controller.right.buttons[1] |= UnityEngine.Input.GetKey(KeyCode.JoystickButton2);
controller.right.buttons[2] |= UnityEngine.Input.GetKey(KeyCode.JoystickButton0);
controller.right.buttons[3] |= UnityEngine.Input.GetKey(KeyCode.JoystickButton3);
controller.left.stickButton |= UnityEngine.Input.GetKey(KeyCode.JoystickButton10);
controller.right.stickButton |= UnityEngine.Input.GetKey(KeyCode.JoystickButton11);
}
public void UpdateGA100Controller() {
controller.left.stickHorizontal = Mathf.Clamp(controller.left.stickHorizontal + Input.GetAxis(axisName[0]), -1, 1);
controller.left.stickVertical = Mathf.Clamp(controller.left.stickVertical + Input.GetAxis(axisName[1]), -1, 1);
controller.left.trigger2 = Mathf.Clamp(controller.left.trigger2 + (Input.GetKey(KeyCode.JoystickButton7) ? 1 : 0), -1, 1);
controller.right.trigger2 = Mathf.Clamp(controller.right.trigger2 + (Input.GetKey(KeyCode.JoystickButton9) ? 1 : 0), -1, 1);
controller.left.trigger1 = Mathf.Clamp(controller.left.trigger1 + (Input.GetKey(KeyCode.JoystickButton6) ? 1 : 0), -1, 1);
controller.right.trigger1 = Mathf.Clamp(controller.right.trigger1 + (Input.GetKey(KeyCode.JoystickButton8) ? 1 : 0), -1, 1);
controller.left.option |= Input.GetKey(KeyCode.JoystickButton10);
controller.right.option |= Input.GetKey(KeyCode.JoystickButton11);
controller.right.buttons[0] |= Input.GetKey(KeyCode.JoystickButton0);
controller.right.buttons[1] |= Input.GetKey(KeyCode.JoystickButton1);
controller.right.buttons[2] |= Input.GetKey(KeyCode.JoystickButton2);
controller.right.buttons[3] |= Input.GetKey(KeyCode.JoystickButton3);
}
#endif
public void UpdateOculusController() {
controller.left.stickHorizontal = Mathf.Clamp(controller.left.stickHorizontal + Input.GetAxis(axisName[0]), -1, 1);
controller.left.stickVertical = Mathf.Clamp(controller.left.stickVertical + Input.GetAxis(axisName[1]), -1, 1);
if (axisAvailable[2] && axisAvailable[3]) {
controller.right.stickHorizontal = Mathf.Clamp(controller.right.stickHorizontal + Input.GetAxis(axisName[3]), -1, 1);
controller.right.stickVertical = Mathf.Clamp(controller.right.stickVertical - Input.GetAxis(axisName[4]), -1, 1);
}
if (axisAvailable[9])
controller.left.trigger1 = Mathf.Clamp(controller.left.trigger1 + Input.GetAxis(axisName[8]), -1, 1);
if (axisAvailable[10])
controller.right.trigger1 = Mathf.Clamp(controller.right.trigger1 + Input.GetAxis(axisName[9]), -1, 1);
if (axisAvailable[11])
controller.left.trigger2 = Mathf.Clamp(controller.left.trigger2 + Input.GetAxis(axisName[10]), -1, 1);
if (axisAvailable[12])
controller.right.trigger2 = Mathf.Clamp(controller.right.trigger2 + Input.GetAxis(axisName[11]), -1, 1);
controller.left.buttons[0] |= Input.GetKey(KeyCode.JoystickButton2);
controller.left.buttons[1] |= Input.GetKey(KeyCode.JoystickButton3);
controller.right.buttons[0] |= Input.GetKey(KeyCode.JoystickButton0);
controller.right.buttons[1] |= Input.GetKey(KeyCode.JoystickButton1);
controller.left.option |= Input.GetKey(KeyCode.JoystickButton7);
controller.left.stickButton |= Input.GetKey(KeyCode.JoystickButton8);
controller.right.stickButton |= Input.GetKey(KeyCode.JoystickButton9);
controller.left.stickTouch |= Input.GetKey(KeyCode.Joystick1Button16);
controller.right.stickTouch |= Input.GetKey(KeyCode.Joystick1Button17);
}
public void UpdateOpenVRController() {
controller.left.stickHorizontal = Mathf.Clamp(controller.left.stickHorizontal + Input.GetAxis(axisName[0]), -1, 1);
controller.left.stickVertical = Mathf.Clamp(controller.left.stickVertical + Input.GetAxis(axisName[1]), -1, 1);
if (axisAvailable[2] && axisAvailable[3]) {
controller.right.stickHorizontal = Mathf.Clamp(controller.right.stickHorizontal + Input.GetAxis(axisName[3]), -1, 1);
controller.right.stickVertical = Mathf.Clamp(controller.right.stickVertical - Input.GetAxis(axisName[4]), -1, 1);
}
if (axisAvailable[9])
controller.left.trigger1 = Mathf.Clamp(controller.left.trigger1 + Input.GetAxis(axisName[8]), -1, 1);
if (axisAvailable[10])
controller.right.trigger1 = Mathf.Clamp(controller.right.trigger1 + Input.GetAxis(axisName[9]), -1, 1);
if (axisAvailable[11])
controller.left.trigger2 = Mathf.Clamp(controller.left.trigger2 + Input.GetAxis(axisName[10]), -1, 1);
if (axisAvailable[12])
controller.right.trigger2 = Mathf.Clamp(controller.right.trigger2 + Input.GetAxis(axisName[11]), -1, 1);
controller.left.buttons[0] |= Input.GetKey(KeyCode.JoystickButton2);
controller.left.buttons[1] |= Input.GetKey(KeyCode.JoystickButton3);
controller.right.buttons[0] |= Input.GetKey(KeyCode.JoystickButton0);
controller.right.buttons[1] |= Input.GetKey(KeyCode.JoystickButton1);
controller.left.option |= Input.GetKey(KeyCode.JoystickButton7);
controller.left.stickButton |= Input.GetKey(KeyCode.JoystickButton8);
controller.right.stickButton |= Input.GetKey(KeyCode.JoystickButton9);
controller.left.stickTouch |= Input.GetKey(KeyCode.Joystick1Button16);
controller.right.stickTouch |= Input.GetKey(KeyCode.Joystick1Button17);
}
protected void UpdateDaydreamController() {
if (axisAvailable[0] && axisAvailable[1]) {
controller.left.stickHorizontal = Mathf.Clamp(controller.left.stickHorizontal + Input.GetAxis(axisName[0]), -1, 1);
controller.left.stickVertical = Mathf.Clamp(controller.left.stickVertical + Input.GetAxis(axisName[1]), -1, 1);
}
if (axisAvailable[2] && axisAvailable[3]) {
controller.right.stickHorizontal = Mathf.Clamp(controller.right.stickHorizontal + Input.GetAxis(axisName[3]), -1, 1);
controller.right.stickVertical = Mathf.Clamp(controller.right.stickVertical - Input.GetAxis(axisName[4]), -1, 1);
}
controller.left.stickButton |= Input.GetKey(KeyCode.JoystickButton16);
controller.right.stickButton |= Input.GetKey(KeyCode.JoystickButton17);
controller.left.stickTouch |= Input.GetKey(KeyCode.Joystick1Button18);
controller.right.stickTouch |= Input.GetKey(KeyCode.Joystick1Button19);
controller.left.option |= Input.GetKey(KeyCode.Joystick1Button2);
controller.right.option |= Input.GetKey(KeyCode.Joystick1Button0);
}
#endregion
private bool[] axisAvailable;
private string[] axisName;
private void InitAxis(int controllerID) {
InitAxisNames(controllerID);
InitAxisAvailable();
}
private void InitAxisNames(int controllerID) {
if (axisName == null)
axisName = new string[13];
axisName[0] = "Horizontal";
axisName[1] = "Vertical";
axisName[2] = "Axis 3";
axisName[3] = "Axis 4";
axisName[4] = "Axis 5";
axisName[5] = "Axis 6";
axisName[6] = "Axis 7";
axisName[7] = "Axis 8";
axisName[8] = "Axis 9";
axisName[9] = "Axis 10";
axisName[10] = "Axis 11";
axisName[11] = "Axis 12";
axisName[12] = "Axis 13";
if (controllerID > 0) {
for (int i = 0; i < 13; i++) {
axisName[i] += "[" + (controllerID + 1) + "]";
}
}
}
private void InitAxisAvailable() {
if (axisAvailable == null)
axisAvailable = new bool[13];
for (int i = 0; i < 13; i++) {
axisAvailable[i] = IsAxisAvailable(axisName[i]);
}
}
private static bool IsAxisAvailable(string axisName) {
try {
Input.GetAxis(axisName);
return true;
}
catch (System.Exception) {
return false;
}
}
}
}