public override void UpdateComponent() { 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)); transform.position = trackerTransform.TransformPoint(localSensorPosition); transform.rotation = trackerTransform.rotation * localSensorRotation; positionConfidence = OpenVRDevice.GetConfidence(trackerId); rotationConfidence = OpenVRDevice.GetConfidence(trackerId); gameObject.SetActive(true); FuseWithUnityCamera(); }
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 override bool IsPresent() { bool isPresent = OpenVRDevice.IsPresent(subTrackerId); return(isPresent); }