public override bool GetCommand_Trigger(Cmd_Trigger cmd) { InputControl input = _cmdTriggerToInputControl[cmd]; // Buttons foreach (var btn in input.buttons) { if (XboxGamepadInput.GetButtonDown(btn)) // TODO: what if button up { return(true); } } // Axes /*foreach (var axis in input.axes) // TODO: store prev axis value to properly determine "trigger" vs "bool" behavior * { * if (XboxGamepadInput.GetAxisRaw(axis) > 0.5f) // TODO: what if negative axis value? * { * return true; * } * }*/ return(false); }
public override bool GetCommand_Bool(Cmd_Bool cmd) { InputControl input = _cmdBoolToInputControl[cmd]; // Buttons foreach (var btn in input.buttons) { if (XboxGamepadInput.GetButton(btn)) { return(true); } } // Axes /*foreach (var axis in input.axes) * { * if (XboxGamepadInput.GetAxisRaw(axis) > 0.5f) // TODO: what if negative axis value? * { * return true; * } * }*/ return(false); }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> // Update gamepad input /// </summary> private void UpdateGamepadInput() { // If gamepad is active Player player = GameManager.Instance.Players[0]; if (player._XboxGamepadInputManager.IsPrimaryController) { // Get input reference XboxGamepadInput xboxInput = player._XboxGamepadInputManager; //if(xboxInput.GetStartButtonClicked()) //{ // StartCoroutine(DelayedSelect(StartButton)); //} //if (GameManager.Instance.IsGamePause()) //{ // StartCoroutine(DelayedSelect(StartButton)); //} //// Navigate UP // if (xboxInput.GetLeftThumbstickYaxis() > 0 || xboxInput.GetDpadUpClicked() || xboxInput.OnLeftTrigger()) { // // Lower the index >> further up // if (_ButtonFocused > 0) { _ButtonFocused--; } // // Clamp to bottom // else { _ButtonFocused = EButtonFocused.ENUM_COUNT - 1; } //} //// Navigate DOWN //if (xboxInput.GetLeftThumbstickYaxis() < 0 || xboxInput.GetDpadDownClicked() || xboxInput.OnRightTrigger()) { // // Higher the index >> further down // if (_ButtonFocused < EButtonFocused.ENUM_COUNT) { _ButtonFocused++; } // // Clamp to top // else { _ButtonFocused = 0; } //} // Select input if (xboxInput.GetButtonAClicked()) { switch (_ButtonFocused) { case EButtonFocused.Resume: { OnResumeGameplay(); break; } case EButtonFocused.Restart: { OnRestartLevel(); break; } case EButtonFocused.Settings: { OnSettings(); break; } case EButtonFocused.SaveNQuit: { OnSaveAndQuit(); break; } default: break; } } } }
string GetString_Buttons_XBOX() { string s = " --- Buttons (XBOX) ---\n"; foreach (XboxGamepadInput.Button b in Enum.GetValues(typeof(XboxGamepadInput.Button))) { s += b.ToString() + "=" + XboxGamepadInput.GetButton(b) + " "; } return(s); }
string GetString_AxesRaw_XBOX() { string s = " --- AxesRaw (XBOX) ---\n"; foreach (XboxGamepadInput.Axis axis in Enum.GetValues(typeof(XboxGamepadInput.Axis))) { s += axis.ToString() + "=" + XboxGamepadInput.GetAxisRaw(axis).ToString("F3") + " "; } return(s); }
public override float GetCommand_Float(Cmd_Float cmd) { float value = 0.0f; InputControl input = _cmdFloatToInputControl[cmd]; // Axes foreach (var axis in input.axes) { value += XboxGamepadInput.GetAxisRaw(axis); } // Buttons /*foreach (var btn in input.buttons) * { * value += XboxGamepadInput.GetButton(btn) ? 1 : 0; // TODO: -1 * }*/ return(Mathf.Clamp(value, -1f, 1f)); }