void Awake() { m_schemeLookup = new Dictionary <string, ControlScheme>(); playerSchemes = new ControlScheme[numPlayers]; ScanService.OnAwake(); GamepadHandler.OnAwake(); }
public bool GetButtonUp(int playerID) { bool value = false; if (m_type == InputType.KeyButton) { value = Input.GetKeyUp(m_positive); } else if (m_type == InputType.GamepadButton) { value = GamepadHandler.GetButtonUp(m_gamepadButton, playerID); } else if (m_type == InputType.GamepadAnalogButton) { value = axesAsButtonValues[playerID] == ButtonState.JustReleased; } else if (m_type == InputType.DigitalAxis) { value = Input.GetKeyUp(useNegativeAxisForButton ? m_negative : m_positive); } else if (m_type == InputType.GamepadAxis) { value = axesAsButtonValues[playerID] == ButtonState.JustReleased; } else if (m_type == InputType.MouseAxis) { value = axesAsButtonValues[playerID] == ButtonState.JustReleased; } return(value); }
public bool AnyInput(int playerID) { switch (m_type) { case InputType.KeyButton: return(Input.GetKey(m_positive)); case InputType.GamepadAnalogButton: return(axesAsButtonValues[playerID] == ButtonState.Pressed || axesAsButtonValues[playerID] == ButtonState.JustPressed); case InputType.GamepadButton: return(GamepadHandler.GetButton(m_gamepadButton, playerID)); case InputType.GamepadAxis: return(GamepadHandler.GetAxisRaw(m_gamepadAxis, playerID, m_deadZone) != 0f); case InputType.DigitalAxis: return(digitalAxisValue != 0); case InputType.MouseAxis: return(Input.GetAxisRaw(rawMouseAxisName) != 0); default: return(false); } }
public void Update(float deltaTime) { if (m_type == InputType.GamepadAnalogButton) { for (int i = 0; i < maxJoysticks; i++) { if (GamepadHandler.GamepadAvailable(i, out _)) { UpdateAxisAsButtons(i, GamepadHandler.GetAxis(m_gamepadAxis, i)); } } } else if (m_type == InputType.GamepadAxis) { if (updateAsButton) { for (int i = 0; i < maxJoysticks; i++) { if (GamepadHandler.GamepadAvailable(i, out _)) { UpdateAxisAsButtons(i, GetAxis(i)); } } } } else if (m_type == InputType.MouseAxis) { if (updateAsButton) { UpdateAxisAsButtons(0, GetAxis(0)); } } if (m_type == InputType.DigitalAxis) { UpdateDigitalAxisValue(deltaTime); } else if (m_type == InputType.KeyButton) { if (updateAsAxis) { UpdateButtonAsAxisValue(deltaTime, 0); } } else if (m_type == InputType.GamepadButton) { if (updateAsAxis) { for (int i = 0; i < maxJoysticks; i++) { if (GamepadHandler.GamepadAvailable(i, out _)) { UpdateButtonAsAxisValue(deltaTime, i); } } } } }
void Update() { float unscaledDeltaTime = Time.unscaledDeltaTime; GamepadHandler.OnUpdate(unscaledDeltaTime); for (int i = 0; i < m_controlSchemes.Count; i++) { m_controlSchemes[i].Update(unscaledDeltaTime); } ScanService.Update(Time.unscaledTime, KeyCode.Escape, 5.0f, numPlayers); }
public float GetAxisRaw(int playerID) { float axis = 0; if (m_type == InputType.DigitalAxis) { if (Input.GetKey(m_positive)) { axis = m_invert ? -AXIS_POSITIVE : AXIS_POSITIVE; } else if (Input.GetKey(m_negative)) { axis = m_invert ? -AXIS_NEGATIVE : AXIS_NEGATIVE; } } else if (m_type == InputType.MouseAxis) { axis = Input.GetAxisRaw(rawMouseAxisName); axis = m_invert ? -axis : axis; } else if (m_type == InputType.GamepadAxis) { axis = GamepadHandler.GetAxisRaw(m_gamepadAxis, playerID, m_deadZone); axis = m_invert ? -axis : axis; } else if (m_type == InputType.KeyButton) { if (GetButton(playerID)) { axis = m_invert ? -AXIS_POSITIVE : AXIS_POSITIVE; } } else if (m_type == InputType.GamepadButton) { if (GetButton(playerID)) { axis = m_invert ? -AXIS_POSITIVE : AXIS_POSITIVE; } } else if (m_type == InputType.GamepadAnalogButton) { if (GetButton(playerID)) { axis = m_invert ? -AXIS_POSITIVE : AXIS_POSITIVE; } } return(axis); }
public float GetAxis(int playerID) { float axis = 0; if (m_type == InputType.DigitalAxis) { axis = m_invert ? -digitalAxisValue : digitalAxisValue; } else if (m_type == InputType.MouseAxis) { axis = Input.GetAxis(rawMouseAxisName) * m_sensitivity; axis = m_invert ? -axis : axis; } else if (m_type == InputType.GamepadAxis) { axis = GamepadHandler.GetAxis(m_gamepadAxis, playerID); if ((axis < 0 && axis > -m_deadZone) || (axis > 0 && axis < m_deadZone)) { axis = AXIS_NEUTRAL; } axis = Mathf.Clamp(axis * m_sensitivity, -1, 1); axis = m_invert ? -axis : axis; } else if (m_type == InputType.GamepadAnalogButton) { axis = GamepadHandler.GetAxis(m_gamepadAxis, playerID); if ((axis < 0 && axis > -m_deadZone) || (axis > 0 && axis < m_deadZone)) { axis = AXIS_NEUTRAL; } axis = Mathf.Clamp(axis * m_sensitivity, -1, 1); axis = m_invert ? -axis : axis; } else if (m_type == InputType.KeyButton) { axis = buttonsAsAxisValue[0]; axis = m_invert ? -axis : axis; } else if (m_type == InputType.GamepadButton) { axis = buttonsAsAxisValue[playerID]; axis = m_invert ? -axis : axis; } return(axis); }
protected override void Awake() { base.Awake(); m_schemeLookup = new Dictionary <string, ControlScheme>(); playerSchemes = new ControlScheme[numPlayers]; ScanService.OnAwake(); GamepadHandler.OnAwake(); // try and load custom runtime bindings if (!LoadCustomSchemes()) { Debug.Log("Couldnt find custom control bindings, loading defaults..."); LoadDefaultSchemes(); } }
void Update() { float unscaledDeltaTime = Time.unscaledDeltaTime; GamepadHandler.OnUpdate(unscaledDeltaTime); updatedSchemes.Clear(); for (int i = 0; i < playerSchemes.Length; i++) { if (playerSchemes[i] != null) { if (!updatedSchemes.Contains(playerSchemes[i])) { playerSchemes[i].Update(unscaledDeltaTime); updatedSchemes.Add(playerSchemes[i]); } } } ScanService.Update(Time.unscaledTime, KeyCode.Escape, 5.0f, numPlayers); }
void Start() { GamepadHandler.OnStart(); }