// 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); }
public static bool GetThumbRest(ControllerState4 controllerState) { RawTouch touchMask = RawTouch.LThumbRest | RawTouch.RThumbRest; bool touch = (controllerState.Touches & (uint)touchMask) != 0; return(touch); }
public static bool GetButton2Press(ControllerState4 controllerState) { uint button = (uint)RawButton.Y | (uint)RawButton.B; bool buttonValue = (controllerState.Buttons & button) != 0; return(buttonValue); }
public static bool GetButton2Touch(ControllerState4 controllerState) { uint button = (uint)RawTouch.Y | (uint)RawTouch.B; bool buttonTouchValue = (controllerState.Touches & button) != 0; return(buttonTouchValue); }
public static bool GetStickPress(ControllerState4 controllerState) { RawButton stickButton = RawButton.LThumbstick | RawButton.RThumbstick; bool stickButtonValue = (controllerState.Buttons & (uint)stickButton) != 0; return(stickButtonValue); }
public static bool GetStickTouch(ControllerState4 controllerState) { RawTouch stickTouch = RawTouch.LThumbstick | RawTouch.RThumbstick; bool stickTouchValue = (controllerState.Touches & (uint)stickTouch) != 0; return(stickTouchValue); }
public static ControllerState4 GetControllerState4(uint controllerMask) { ControllerState4 controllerState = new ControllerState4(); ovrp_GetControllerState4(controllerMask, ref controllerState); return(controllerState); }
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); }
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); }
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); }
public static extern Result ovrp_GetControllerState4(uint controllerMask, ref ControllerState4 controllerState);
public static float GetTrigger2(ControllerState4 controllerState, bool isLeft) { float trigger2Value = isLeft ? controllerState.LHandTrigger : controllerState.RHandTrigger; return(trigger2Value); }
public static float GetVerticalTouch(ControllerState4 controllerState, bool isLeft) { float stickVerticalValue = isLeft ? controllerState.LTouchpad.y : controllerState.RTouchpad.y; return(stickVerticalValue); }
public static float GetHorizontalTouch(ControllerState4 controllerState, bool isLeft) { float stickHorizontalValue = isLeft ? controllerState.LTouchpad.x : controllerState.RTouchpad.x; return(stickHorizontalValue); }
public static float GetVerticalStick(ControllerState4 controllerState, bool isLeft) { float stickVerticalValue = isLeft ? controllerState.LThumbstick.y : controllerState.RThumbstick.y; return(stickVerticalValue); }
public static float GetHorizontalStick(ControllerState4 controllerState, bool isLeft) { float stickHorizontalValue = isLeft ? controllerState.LThumbstick.x : controllerState.RThumbstick.x; return(stickHorizontalValue); }