public void AddCustomController(IGamepadController controller) { if (!customControllers.Contains(controller)) { customControllers.Add(controller); } }
public override void GetGamepadAxisRawRaw(IGamepadController gamepad, GamepadAxis axis, out float axisX, out float axisY) { var axisValue = Vector2.zero; if (axis == GamepadAxis.None) { axisX = 0f; axisY = 0f; return; } switch (axis) { case GamepadAxis.D_Pad: axisValue.x = GetGamepadAxisRaw(gamepad, GetGamepadAxisRawMapping(GamepadAxis.D_Pad_Left)); axisValue.y = GetGamepadAxisRaw(gamepad, GetGamepadAxisRawMapping(GamepadAxis.D_Pad_Top)); break; case GamepadAxis.L_Stick: axisValue.x = GetGamepadAxisRaw(gamepad, GetGamepadAxisRawMapping(GamepadAxis.L_Stick_Left)); axisValue.y = GetGamepadAxisRaw(gamepad, GetGamepadAxisRawMapping(GamepadAxis.L_Stick_Top)); break; case GamepadAxis.R_Stick: axisValue.x = GetGamepadAxisRaw(gamepad, GetGamepadAxisRawMapping(GamepadAxis.R_Stick_Left)); axisValue.y = GetGamepadAxisRaw(gamepad, GetGamepadAxisRawMapping(GamepadAxis.R_Stick_Top)); break; } axisX = axisValue.x; axisY = axisValue.y; }
public override bool GetGamepadButtonReleasedRaw(IGamepadController gamepad, GamepadButtonRaw button) { if (button == GamepadButtonRaw.None) { return(false); } return(UnityEngine.Input.GetKeyUp((UnityEngine.KeyCode)(GetGamepadKeyCodeOffset(gamepad) - 1 + ((int)button)))); }
private int GetGamepadIndex(IGamepadController gamepad) { var gamepadIndex = 0; if (gamepads.Contains(gamepad)) { gamepadIndex = (gamepads.IndexOf(gamepad) + 1); } return(gamepadIndex); }
public override bool GetGamepadButtonReleasedRaw(IGamepadController gamepad, GamepadButtonRaw button) { if (button == GamepadButtonRaw.None || button == GamepadButtonRaw.Button_9 || (int)button >= (int)GamepadButtonRaw.Button_12) { return(false); } var gamepadRaw = GetGamepad(gamepad); if (gamepadRaw == null) { return(false); } return(gamepadRaw[GetGamepadButtonMapping(button)].wasReleasedThisFrame); }
public override float GetGamepadAxisRaw(IGamepadController gamepad, GamepadAxisRaw axis) { var result = 0f; var gamepadRaw = GetGamepad(gamepad); if (gamepadRaw != null) { switch (axis) { case GamepadAxisRaw.AxisX: result = gamepadRaw.leftStick.x.ReadUnprocessedValue(); break; case GamepadAxisRaw.AxisY: result = gamepadRaw.leftStick.y.ReadUnprocessedValue(); break; case GamepadAxisRaw.Axis4: result = gamepadRaw.rightStick.x.ReadUnprocessedValue(); break; case GamepadAxisRaw.Axis5: result = gamepadRaw.rightStick.y.ReadUnprocessedValue(); break; case GamepadAxisRaw.Axis3: result = gamepadRaw.leftTrigger.ReadUnprocessedValue(); break; case GamepadAxisRaw.Axis6: result = gamepadRaw.rightTrigger.ReadUnprocessedValue(); break; case GamepadAxisRaw.Axis7: result = gamepadRaw.dpad.x.ReadUnprocessedValue(); break; case GamepadAxisRaw.Axis8: result = gamepadRaw.dpad.y.ReadUnprocessedValue(); break; } } return(result); }
public override float GetGamepadAxisRaw(IGamepadController gamepad, GamepadAxis axis) { var axisValue = GetGamepadAxisRaw(gamepad, GetGamepadAxisRawMapping(axis)); #if UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX if (axis == GamepadAxis.D_Pad_Left || axis == GamepadAxis.D_Pad_Top || axis == GamepadAxis.L_Stick_Left || axis == GamepadAxis.L_Stick_Top || axis == GamepadAxis.R_Stick_Left || axis == GamepadAxis.R_Stick_Top) { axisValue *= -1; } #elif UNITY_STANDALONE_WIN if (axis == GamepadAxis.D_Pad_Left || axis == GamepadAxis.L_Stick_Left || axis == GamepadAxis.L_Stick_Top || axis == GamepadAxis.R_Stick_Left || axis == GamepadAxis.R_Stick_Top) { axisValue *= -1; } #endif return(axisValue); }
public override float GetGamepadAxisRaw(IGamepadController gamepad, GamepadAxisRaw axis) { var axisValue = 0f; if (axis == GamepadAxisRaw.None) { return(axisValue); } var gamepadIndex = GetGamepadIndex(gamepad); var axisIndex = (int)axis; if (axisIndex > 0 && gamepadIndex > 0) { // Input Axis Names (Project Settings -> Input Manager) // // Axis{#1}_{#2} // Number {#1} should be 1~10 (Axis index) // Number {#2} can be 1~16 (Gamepad index) // // Important: Set sensibility to 1 and gravity to 0 var axisName = $"Axis{axisIndex}_{gamepadIndex}"; try { axisValue = UnityEngine.Input.GetAxisRaw(axisName); } catch (System.Exception e) { Log.Exception(null, e); } } return(axisValue); }
public InputGamepadConnectedEvent(IGamepadController controller) { Controller = controller; }
public abstract bool GetGamepadButtonReleasedRaw(IGamepadController gamepad, GamepadButtonRaw button);
public override float GetGamepadAxisRaw(IGamepadController gamepad, GamepadAxis axis) { return(GetGamepadAxisRaw(gamepad, GetGamepadAxisRawMapping(axis))); }
private Gamepad GetGamepad(IGamepadController gamepad) { return(UnityEngine.InputSystem.Gamepad.all.Find(null, g => GetUniqueGamepadId(g) == gamepad.Id)); }
public abstract float GetGamepadAxisRaw(IGamepadController gamepad, GamepadAxisRaw axis);
public override bool GetGamepadButtonReleasedRaw(IGamepadController gamepad, GamepadButton button) { return(GetGamepadButtonReleasedRaw(gamepad, GetGamepadButtonRawMapping(button))); }
private int GetGamepadKeyCodeOffset(IGamepadController gamepad) { // Note: Index min = 0, max = 7 return(350 + ((GetGamepadIndex(gamepad) - 1) * 20)); }
public abstract void GetGamepadAxisRawRaw(IGamepadController gamepad, GamepadAxis axis, out float axisX, out float axisY);
public abstract bool GetGamepadButtonHeldRaw(IGamepadController gamepad, GamepadButton button);
public static Vector2 GetAxisRaw(this IGamepadController gamepadController, GamepadAxis axis) { gamepadController.GetAxisRaw(axis, out float axisX, out float axisY); return(new Vector2(axisX, axisY)); }
public void RemoveCustomController(IGamepadController controller) { customControllers.Remove(controller); }