public override float GetAxis(XRNodeState node, InputAxis axis) { var controller = GetController(node); OVRPlugin.ControllerState4 state = OVRPlugin.GetControllerState4((uint)controller); switch (axis) { case InputAxis.LeftClick: return(controller == OVRInput.Controller.LTouch ? state.LIndexTrigger : state.RIndexTrigger); case InputAxis.RightClick: return(controller == OVRInput.Controller.LTouch ? state.LHandTrigger : state.RHandTrigger); case InputAxis.MiddleClick: { var buttonId = controller == OVRInput.Controller.LTouch ? 0x00000400 : 0x00000004; //see enum ovrButton_ in OVR_CAPI.h return((state.Buttons & buttonId) != 0 ? 1 : 0); } case InputAxis.JoyStickX: case InputAxis.JoyStickY: { var joy = controller == OVRInput.Controller.LTouch ? state.LThumbstick : state.RThumbstick; return(axis == InputAxis.JoyStickX ? joy.x : joy.y); } default: return(0); } }
protected override float GetAxisValue(XRNodeState node, InputAxis axis) { var controller = GetController(node); OVRPlugin.ControllerState4 state = OVRPlugin.GetControllerState4((uint)controller); switch (axis) { case InputAxis.MainTrigger: return(controller == OVRInput.Controller.LTouch ? state.LIndexTrigger : state.RIndexTrigger); case InputAxis.Grip: return(controller == OVRInput.Controller.LTouch ? state.LHandTrigger : state.RHandTrigger); case InputAxis.JoypadX: case InputAxis.JoypadY: { var joy = controller == OVRInput.Controller.LTouch ? state.LThumbstick : state.RThumbstick; return(axis == InputAxis.JoypadX ? joy.x : joy.y); } case InputAxis.Joypad: { var buttonId = controller == OVRInput.Controller.LTouch ? 0x00000400 : 0x00000004; //see enum ovrButton_ in OVER_CAPI.h return((state.Buttons & buttonId) != 0 ? 1 : 0); } default: return(0); } }