예제 #1
0
        static void ProcessGamepadButtonEvent(GamepadEventType state, GamepadKeyCode buttonIndex, double id, double value)
        {
            GamepadButton buttonToUpdate = GamepadButton.DpadUp;
            GamepadState  gamepadState   = GamepadsStates[id];

            switch (buttonIndex)
            {
            case GamepadKeyCode.dpadUp:
                buttonToUpdate = GamepadButton.DpadUp;
                break;

            case GamepadKeyCode.dpadDown:
                buttonToUpdate = GamepadButton.DpadDown;
                break;

            case GamepadKeyCode.dpadLeft:
                buttonToUpdate = GamepadButton.DpadLeft;
                break;

            case GamepadKeyCode.dpadRight:
                buttonToUpdate = GamepadButton.DpadRight;
                break;

            case GamepadKeyCode.Button0:
                buttonToUpdate = GamepadButton.B;
                break;

            case GamepadKeyCode.Button1:
                buttonToUpdate = GamepadButton.A;
                break;

            case GamepadKeyCode.Button2:
                buttonToUpdate = GamepadButton.Y;
                break;

            case GamepadKeyCode.Button3:
                buttonToUpdate = GamepadButton.X;
                break;

            case GamepadKeyCode.Button6:
                buttonToUpdate           = GamepadButton.LeftTrigger;
                gamepadState.leftTrigger = (float)value;
                break;

            case GamepadKeyCode.Button7:
                buttonToUpdate            = GamepadButton.RightTrigger;
                gamepadState.rightTrigger = (float)value;
                break;

            default:
                UE.Debug.Log("Unmapped button code: " + buttonIndex);
                break;
            }
            GamepadsStates[id] = gamepadState.WithButton(buttonToUpdate, GamepadEventType.ButtonDown == state || GamepadEventType.ButtonPressed == state);
        }
예제 #2
0
        void ProcessGamepadAxisEvent(double x, double y, GamepadKeyCode axisKeyCode)
        {
            GamepadState gamepadState = m_gamepadState;

            if (axisKeyCode == GamepadKeyCode.Axis0)
            {
                gamepadState.leftStick = new UE.Vector2((float)x, (float)y);
            }
            if (axisKeyCode == GamepadKeyCode.Axis1)
            {
                gamepadState.rightStick = new UE.Vector2((float)x, (float)y);
            }

            m_gamepadState = gamepadState;
        }
예제 #3
0
        static void ProcessGamepadAxisEvent(double x, double y, GamepadKeyCode axisKeyCode, double id)
        {
            GamepadState gamepadState = GamepadsStates[id];

            if (axisKeyCode == GamepadKeyCode.axis0)
            {
                gamepadState.leftStick = new UE.Vector2((float)x, (float)y);
            }
            if (axisKeyCode == GamepadKeyCode.axis1)
            {
                gamepadState.rightStick = new UE.Vector2((float)x, (float)y);
            }

            GamepadsStates[id] = gamepadState;
        }
예제 #4
0
        public InputKey?Map(GamepadKeyCode gamepadKeyCode)
        {
            var lookup = GetKeyLookup();

            InputKey?ret;

            if (lookup.TryGetValue(gamepadKeyCode, out InputKey key))
            {
                ret = key;
            }
            else
            {
                ret = null;
            }

            return(ret);
        }