Пример #1
0
        // always give true... Maybe because I'm using an engineering sample?
        public static bool GetButton2Near(ControllerState4 controllerState)
        {
            uint mask   = (uint)RawNearTouch.LThumbButtons | (uint)RawNearTouch.RThumbButtons;
            bool isNear = (controllerState.NearTouches & mask) != 0;

            return(isNear);
        }
Пример #2
0
        public static bool GetThumbRest(ControllerState4 controllerState)
        {
            RawTouch touchMask = RawTouch.LThumbRest | RawTouch.RThumbRest;
            bool     touch     = (controllerState.Touches & (uint)touchMask) != 0;

            return(touch);
        }
Пример #3
0
        public static bool GetButton2Press(ControllerState4 controllerState)
        {
            uint button      = (uint)RawButton.Y | (uint)RawButton.B;
            bool buttonValue = (controllerState.Buttons & button) != 0;

            return(buttonValue);
        }
Пример #4
0
        public static bool GetButton2Touch(ControllerState4 controllerState)
        {
            uint button           = (uint)RawTouch.Y | (uint)RawTouch.B;
            bool buttonTouchValue = (controllerState.Touches & button) != 0;

            return(buttonTouchValue);
        }
Пример #5
0
        public static bool GetStickPress(ControllerState4 controllerState)
        {
            RawButton stickButton      = RawButton.LThumbstick | RawButton.RThumbstick;
            bool      stickButtonValue = (controllerState.Buttons & (uint)stickButton) != 0;

            return(stickButtonValue);
        }
Пример #6
0
        public static bool GetStickTouch(ControllerState4 controllerState)
        {
            RawTouch stickTouch      = RawTouch.LThumbstick | RawTouch.RThumbstick;
            bool     stickTouchValue = (controllerState.Touches & (uint)stickTouch) != 0;

            return(stickTouchValue);
        }
Пример #7
0
        public static ControllerState4 GetControllerState4(uint controllerMask)
        {
            ControllerState4 controllerState = new ControllerState4();

            ovrp_GetControllerState4(controllerMask, ref controllerState);
            return(controllerState);
        }
Пример #8
0
        public static ControllerState4 GetControllerState(OculusDevice.Controller controllerMask)
        {
            ControllerState4 controllerState;

            if (version < version_1_16_0)
            {
                ControllerState2 controllerState2 = ovrp_GetControllerState2((uint)controllerMask);
                controllerState = new ControllerState4(controllerState2);
            }
            else
            {
                controllerState = new ControllerState4();
                ovrp_GetControllerState4((uint)controllerMask, ref controllerState);
            }
            return(controllerState);
        }
Пример #9
0
        public static void GetControllerInput(Sensor.ID sensorID, ref ControllerButtons input)
        {
            Controller controllerMask;

            switch (sensorID)
            {
            case Sensor.ID.LeftHand:
#if UNITY_ANDROID
                controllerMask = Controller.LTrackedRemote;
#else
                controllerMask = Controller.LTouch;
#endif
                break;

            case Sensor.ID.RightHand:
#if UNITY_ANDROID
                controllerMask = Controller.RTrackedRemote;
#else
                controllerMask = Controller.RTouch;
#endif
                break;

            default:
                return;
            }
            bool isLeft = (sensorID == Sensor.ID.LeftHand);

            ControllerState4 controllerState = GetControllerState(controllerMask);

            input.stickHorizontal = GetHorizontalStick(controllerState, isLeft);
            input.stickVertical   = GetVerticalStick(controllerState, isLeft);
            input.stickPress      = GetStickPress(controllerState);
            input.stickTouch      = GetStickTouch(controllerState);

            input.buttons[0] = GetButton1Press(controllerState);
            input.buttons[1] = GetButton2Press(controllerState);

            input.trigger1 = GetTrigger1(controllerState, isLeft);
            input.trigger2 = GetTrigger2(controllerState, isLeft);

            input.up    = (input.stickVertical > 0.3F);
            input.down  = (input.stickVertical < -0.3F);
            input.left  = (input.stickHorizontal < -0.3F);
            input.right = (input.stickHorizontal > 0.3F);
        }
Пример #10
0
        public static float GetTrigger1(ControllerState4 controllerState, bool isLeft)
        {
            float trigger1Value = isLeft ? controllerState.LIndexTrigger : controllerState.RIndexTrigger;

            // always give true... Maybe because I'm using an engineering sample?
            //uint nearId = (uint)RawNearTouch.LIndexTrigger | (uint)RawNearTouch.RIndexTrigger;
            //bool trigger1Near = (controllerState.NearTouches & nearId) != 0;

            uint touchId       = (uint)RawTouch.LIndexTrigger | (uint)RawTouch.RIndexTrigger;
            bool trigger1Touch = (controllerState.Touches & touchId) != 0;

            if (!trigger1Touch)
            {
                trigger1Value = -1F;
            }

            return(trigger1Value);
        }
Пример #11
0
 public static extern Result ovrp_GetControllerState4(uint controllerMask, ref ControllerState4 controllerState);
Пример #12
0
        public static float GetTrigger2(ControllerState4 controllerState, bool isLeft)
        {
            float trigger2Value = isLeft ? controllerState.LHandTrigger : controllerState.RHandTrigger;

            return(trigger2Value);
        }
Пример #13
0
        public static float GetVerticalTouch(ControllerState4 controllerState, bool isLeft)
        {
            float stickVerticalValue = isLeft ? controllerState.LTouchpad.y : controllerState.RTouchpad.y;

            return(stickVerticalValue);
        }
Пример #14
0
        public static float GetHorizontalTouch(ControllerState4 controllerState, bool isLeft)
        {
            float stickHorizontalValue = isLeft ? controllerState.LTouchpad.x : controllerState.RTouchpad.x;

            return(stickHorizontalValue);
        }
Пример #15
0
        public static float GetVerticalStick(ControllerState4 controllerState, bool isLeft)
        {
            float stickVerticalValue = isLeft ? controllerState.LThumbstick.y : controllerState.RThumbstick.y;

            return(stickVerticalValue);
        }
Пример #16
0
        public static float GetHorizontalStick(ControllerState4 controllerState, bool isLeft)
        {
            float stickHorizontalValue = isLeft ? controllerState.LThumbstick.x : controllerState.RThumbstick.x;

            return(stickHorizontalValue);
        }