예제 #1
0
    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);
    }
예제 #2
0
    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);
    }
예제 #3
0
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    /// <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;
                }
            }
        }
    }
예제 #4
0
    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);
    }
예제 #5
0
    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);
    }
예제 #6
0
    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));
    }