Ejemplo n.º 1
0
    public bool GetControllerButton(ControllerCode buttonCode, int gamePadIndex, ButtonStateType buttonState = ButtonStateType.Down)
    {
        string buttonName = GetGamePadControllerCodeName(buttonCode, gamePadIndex);

        if (ControllerMap.ContainsKey(buttonName))
        {
            ControllerMappedInput mappedInput = ControllerMap[buttonName];
            if (!mappedInput.IsAxis)
            {
                if (mappedInput.Key != KeyCode.None)
                {
                    switch (buttonState)
                    {
                    case ButtonStateType.Down:
                        return(Input.GetKeyDown(mappedInput.Key));

                    case ButtonStateType.Up:
                        return(Input.GetKeyUp(mappedInput.Key));

                    case ButtonStateType.Constant:
                        return(Input.GetKey(mappedInput.Key));
                    }
                }
            }
        }

        return(false);
    }
Ejemplo n.º 2
0
    public float GetControllerAxis(ControllerCode axisCode, int gamePadIndex)
    {
        string axisName = GetGamePadControllerCodeName(axisCode, gamePadIndex);

        if (ControllerMap.ContainsKey(axisName))
        {
            ControllerMappedInput mappedInput = ControllerMap[axisName];
            if (mappedInput.IsAxis)
            {
                if (!string.IsNullOrEmpty(mappedInput.Axis))
                {
                    if (currentOS == OS.Mac)
                    {
                        if (axisCode == ControllerCode.LeftTriggerAxis)
                        {
                            float leftTriggerAxisValue = Input.GetAxis(mappedInput.Axis);

                            if (LeftTriggerPressed)
                            {
                                leftTriggerAxisValue = MapMacTriggerAxisToPercent(leftTriggerAxisValue);
                            }
                            else
                            {
                                if (leftTriggerAxisValue != 0)
                                {
                                    LeftTriggerPressed   = true;
                                    leftTriggerAxisValue = MapMacTriggerAxisToPercent(leftTriggerAxisValue);
                                }
                            }

                            return(leftTriggerAxisValue);
                        }
                        else if (axisCode == ControllerCode.RightTriggerAxis)
                        {
                            float rightTriggerAxisValue = Input.GetAxis(mappedInput.Axis);

                            if (RightTriggerPressed)
                            {
                                rightTriggerAxisValue = MapMacTriggerAxisToPercent(rightTriggerAxisValue);
                            }
                            else
                            {
                                if (rightTriggerAxisValue != 0)
                                {
                                    RightTriggerPressed   = true;
                                    rightTriggerAxisValue = MapMacTriggerAxisToPercent(rightTriggerAxisValue);
                                }
                            }

                            return(rightTriggerAxisValue);
                        }
                        else
                        {
                            return(Input.GetAxis(mappedInput.Axis));
                        }
                    }
                    else
                    {
                        return(Input.GetAxis(mappedInput.Axis));
                    }
                }
            }
        }

        return(0f);
    }