コード例 #1
0
            public OpenVRControllerInput(CVRSystem hmd, int index, EVREventType eventType, VREvent_Controller_t contEvent)
            {
                State = eventType == EVREventType.VREvent_ButtonPress ? InputState.Start : InputState.Finish;

                // CONTROLLER KEY BINDINGS ARE HERE
                switch ((EVRButtonId)contEvent.button)
                {
                case EVRButtonId.k_EButton_System:
                    // used by system, dont handle
                    break;

                case EVRButtonId.k_EButton_ApplicationMenu:
                    Input = InputType.Pause;
                    break;

                case EVRButtonId.k_EButton_Grip:
                    break;

                case EVRButtonId.k_EButton_DPad_Left:
                    break;

                case EVRButtonId.k_EButton_DPad_Up:
                    break;

                case EVRButtonId.k_EButton_DPad_Right:
                    break;

                case EVRButtonId.k_EButton_DPad_Down:
                    break;

                case EVRButtonId.k_EButton_A:
                    break;

                case EVRButtonId.k_EButton_Axis2:
                    break;

                case EVRButtonId.k_EButton_Axis3:
                    break;

                case EVRButtonId.k_EButton_Axis4:
                    break;

                case EVRButtonId.k_EButton_SteamVR_Touchpad:
                    Input = hmd.ControllerState(index).rAxis0.y > 0 ? InputType.SpeedUp : InputType.SlowDown;
                    break;

                case EVRButtonId.k_EButton_SteamVR_Trigger:
                    Input = InputType.PrimarySelect;
                    break;

                case EVRButtonId.k_EButton_Max:
                    // should never fire
                    break;

                default:
                    break;
                }
            }