public void UpdateInput(Passer.VRControllerState_t controllerState) { pogo3 = GetPress(controllerState, Passer.EVRButtonId.k_EButton_Grip); pogo4 = GetPress(controllerState, Passer.EVRButtonId.k_EButton_SteamVR_Trigger); pogo5 = GetPress(controllerState, Passer.EVRButtonId.k_EButton_SteamVR_Touchpad); pogo6 = GetPress(controllerState, Passer.EVRButtonId.k_EButton_ApplicationMenu); }
private Vector2 GetAxis(Passer.VRControllerState_t state, Passer.EVRButtonId button) { var axisId = (uint)button - (uint)Passer.EVRButtonId.k_EButton_Axis0; switch (axisId) { case 0: return(new Vector2(state.rAxis0.x, state.rAxis0.y)); case 1: return(new Vector2(state.rAxis1.x, state.rAxis1.y)); case 2: return(new Vector2(state.rAxis2.x, state.rAxis2.y)); case 3: return(new Vector2(state.rAxis3.x, state.rAxis3.y)); case 4: return(new Vector2(state.rAxis4.x, state.rAxis4.y)); } return(Vector2.zero); }
private float GetAxisX(Passer.VRControllerState_t state, Passer.EVRButtonId button) { var axisId = (uint)button - (uint)Passer.EVRButtonId.k_EButton_Axis0; switch (axisId) { case 0: return(state.rAxis0.x); case 1: return(state.rAxis1.x); case 2: return(state.rAxis2.x); case 3: return(state.rAxis3.x); case 4: return(state.rAxis4.x); } return(0); }
public override void UpdateComponent() { if (OpenVRDevice.status == Status.Unavailable) { status = Status.Unavailable; } if (trackerId < 0) { FindOutermostController(isLeft); } if (OpenVRDevice.GetConfidence(trackerId) == 0) { status = OpenVRDevice.IsPresent(trackerId) ? Status.Present : Status.Unavailable; positionConfidence = 0; rotationConfidence = 0; gameObject.SetActive(false); return; } status = Status.Tracking; Vector3 localSensorPosition = Target.ToVector3(OpenVRDevice.GetPosition(trackerId)); Quaternion localSensorRotation = Target.ToQuaternion(OpenVRDevice.GetRotation(trackerId)); transform.position = trackerTransform.TransformPoint(localSensorPosition); transform.rotation = trackerTransform.rotation * localSensorRotation; positionConfidence = OpenVRDevice.GetConfidence(trackerId); rotationConfidence = OpenVRDevice.GetConfidence(trackerId); gameObject.SetActive(true); Passer.VRControllerState_t controllerState = new Passer.VRControllerState_t(); var system = Passer.OpenVR.System; uint controllerStateSize = (uint)Marshal.SizeOf(typeof(Passer.VRControllerState_t)); bool newControllerState = system.GetControllerState((uint)trackerId, ref controllerState, controllerStateSize); if (system != null && newControllerState) { UpdateInput(controllerState); } Skeletal(); }
public void UpdateInput(Passer.VRControllerState_t controllerState) { Vector2 joystickPosition = GetVector2(actionHandleJoystick); float joystickButton = GetBoolean(actionHandleJoystickPress) ? 1 : GetBoolean(actionHandleJoystickTouch) ? 0 : -1; joystick = new Vector3(joystickPosition.x, joystickPosition.y, joystickButton); Vector2 touchPadPosition = GetVector2(actionHandleTouchpad); float touchPadButton = GetBoolean(actionHandleTouchpadTouch) ? (GetBoolean(actionHandleTouchpadClick) ? 1 : GetFloat(actionHandleTouchpadPress)) : -1; touchpad = new Vector3(touchPadPosition.x, touchPadPosition.y, touchPadButton); float triggerPress = GetFloat(actionHandleTrigger); trigger = triggerPress == 0 && !GetBoolean(actionHandleTriggerTouch) ? -1 : triggerPress; float gripPress = GetBoolean(actionHandleGripClick) ? 1 : GetFloat(actionHandleGrip); grip = gripPress == 0 && !GetBoolean(actionHandleGripTouch) ? -1 : gripPress; //(GetBoolean(actionHandleGripClick) ? 1 : GetFloat(actionHandleGrip)) // : -1; aButton = GetBoolean(actionHandleButtonA) ? 1 : GetBoolean(actionHandleButtonATouch) ? 0 : -1; bButton = GetBoolean(actionHandleButtonB) ? 1 : GetBoolean(actionHandleButtonBTouch) ? 0 : -1; }
public void UpdateInput(Passer.VRControllerState_t controllerState) { Vector2 thumbstickPosition = GetAxis(controllerState, Passer.EVRButtonId.k_EButton_Axis2); Vector2 touchPadPosition = GetAxis(controllerState, Passer.EVRButtonId.k_EButton_SteamVR_Touchpad); touchPadPosition += thumbstickPosition; float touchPadButton = GetPress(controllerState, Passer.EVRButtonId.k_EButton_SteamVR_Touchpad) ? 1 : (GetTouch(controllerState, Passer.EVRButtonId.k_EButton_SteamVR_Touchpad) ? 0 : -1); touchPad = new Vector3(touchPadPosition.x, touchPadPosition.y, touchPadButton); gripButton = GetPress(controllerState, Passer.EVRButtonId.k_EButton_Grip) ? 1 : 0; trigger = GetAxisX(controllerState, Passer.EVRButtonId.k_EButton_SteamVR_Trigger); menuButton = GetPress(controllerState, Passer.EVRButtonId.k_EButton_ApplicationMenu) ? 1 : (GetTouch(controllerState, Passer.EVRButtonId.k_EButton_ApplicationMenu) ? 0 : -1); aButton = GetPress(controllerState, Passer.EVRButtonId.k_EButton_A) ? 1 : (GetTouch(controllerState, Passer.EVRButtonId.k_EButton_A) ? 0 : -1); }
private bool GetTouch(Passer.VRControllerState_t controllerState, Passer.EVRButtonId button) { return((controllerState.ulButtonTouched & ButtonMaskFromId(button)) != 0); }
public override void UpdateComponent() { #if hSTEAMVR if (SteamDevice.status == Status.Unavailable) { status = Status.Unavailable; } if (SteamDevice.GetConfidence(trackerId) == 0) { status = SteamDevice.IsPresent(trackerId) ? Status.Present : Status.Unavailable; positionConfidence = 0; rotationConfidence = 0; gameObject.SetActive(false); return; } status = Status.Tracking; Vector3 localSensorPosition = Target.ToVector3(SteamDevice.GetPosition(trackerId)); Quaternion localSensorRotation = Target.ToQuaternion(SteamDevice.GetRotation(trackerId)) * Quaternion.Euler(270, 0, 180); transform.position = trackerTransform.TransformPoint(localSensorPosition); transform.rotation = trackerTransform.rotation * localSensorRotation; positionConfidence = SteamDevice.GetConfidence(trackerId); rotationConfidence = SteamDevice.GetConfidence(trackerId) * 0.6F; #elif hOPENVR if (OpenVRDevice.status == Status.Unavailable) { status = Status.Unavailable; } if (OpenVRDevice.GetConfidence(trackerId) == 0) { status = OpenVRDevice.IsPresent(trackerId) ? Status.Present : Status.Unavailable; positionConfidence = 0; rotationConfidence = 0; gameObject.SetActive(false); return; } status = Status.Tracking; Vector3 localSensorPosition = Target.ToVector3(OpenVRDevice.GetPosition(trackerId)); Quaternion localSensorRotation = Target.ToQuaternion(OpenVRDevice.GetRotation(trackerId)) * Quaternion.Euler(270, 0, 180); transform.position = trackerTransform.TransformPoint(localSensorPosition); transform.rotation = trackerTransform.rotation * localSensorRotation; positionConfidence = OpenVRDevice.GetConfidence(trackerId); rotationConfidence = OpenVRDevice.GetConfidence(trackerId); #endif gameObject.SetActive(true); Passer.VRControllerState_t controllerState = new Passer.VRControllerState_t(); var system = Passer.OpenVR.System; uint controllerStateSize = (uint)System.Runtime.InteropServices.Marshal.SizeOf(typeof(Passer.VRControllerState_t)); bool newControllerState = system.GetControllerState((uint)trackerId, ref controllerState, controllerStateSize); if (system != null && newControllerState) { UpdateInput(controllerState); } }