public override void UpdateComponent() { status = Status.Tracking; if (OculusDevice.status == Status.Unavailable) { status = Status.Unavailable; } Sensor.ID sensorID = isLeft ? Sensor.ID.LeftHand : Sensor.ID.RightHand; if (OculusDevice.GetRotationalConfidence(sensorID) == 0) { status = Status.Present; } if (status == Status.Present || status == Status.Unavailable) { positionConfidence = 0; rotationConfidence = 0; gameObject.SetActive(false); return; } Vector3 localSensorPosition = Target.ToVector3(OculusDevice.GetPosition(sensorID)); Quaternion localSensorRotation = Target.ToQuaternion(OculusDevice.GetRotation(sensorID)); transform.position = trackerTransform.TransformPoint(localSensorPosition); transform.rotation = trackerTransform.rotation * localSensorRotation; positionConfidence = OculusDevice.GetPositionalConfidence(sensorID); rotationConfidence = OculusDevice.GetRotationalConfidence(sensorID); gameObject.SetActive(true); UpdateInput(sensorID); }
public override void UpdateComponent() { if (OculusDevice.GetRotationalConfidence(sensorId) == 0) { status = OculusDevice.IsPresent(0) ? Status.Present : Status.Unavailable; positionConfidence = 0; rotationConfidence = 0; gameObject.SetActive(false); return; } status = Status.Tracking; Vector3 localPosition = Target.ToVector3(OculusDevice.GetPosition(sensorId)); Quaternion localRotation = Target.ToQuaternion(OculusDevice.GetRotation(sensorId)); transform.position = trackerTransform.TransformPoint(localPosition); transform.rotation = trackerTransform.rotation * localRotation; positionConfidence = OculusDevice.GetPositionalConfidence(sensorId); rotationConfidence = OculusDevice.GetRotationalConfidence(sensorId); gameObject.SetActive(true); FuseWithUnityCamera(); }
public override void UpdateTracker() { if (!enabled || trackerTransform == null) { return; } if (UnityVRDevice.xrDevice != UnityVRDevice.XRDeviceType.Oculus) { status = Status.Unavailable; return; } status = OculusDevice.status; trackerTransform.localPosition = new Vector3(0, OculusDevice.eyeHeight, 0); deviceView.position = Target.ToVector(trackerTransform.position); deviceView.orientation = Target.ToRotation(trackerTransform.rotation); OculusDevice.Update(); foreach (SubTracker subTracker in subTrackers) { if (subTracker != null) { subTracker.UpdateTracker(humanoid.showRealObjects); } } if (OculusDevice.ovrp_GetAppShouldRecenter() == OculusDevice.Bool.True) { humanoid.Calibrate(); } }
public override bool IsPresent() { #if hOCULUS return(OculusDevice.IsPresent(Sensor.ID.Tracker1 + subTrackerId)); #else return(false); #endif }
public override void Calibrate() { base.Calibrate(); if (enabled && UnityVRDevice.xrDevice == UnityVRDevice.XRDeviceType.Oculus) { OculusDevice.ovrp_RecenterTrackingOrigin(unchecked ((uint)OculusDevice.RecenterFlags.IgnoreAll)); } }
public override void UpdateTracker(bool showRealObjects) { #if hOCULUS gameObject.SetActive(showRealObjects && IsPresent()); Vector3 localPosition = Target.ToVector3(OculusDevice.GetPosition(Sensor.ID.Tracker1 + subTrackerId)); Quaternion localRotation = Target.ToQuaternion(OculusDevice.GetRotation(Sensor.ID.Tracker1 + subTrackerId)); transform.position = tracker.trackerTransform.TransformPoint(localPosition); transform.rotation = tracker.trackerTransform.rotation * localRotation; #endif }
public static int GetCount() { int count = 0; for (int i = 0; i < (int)OculusDevice.Tracker.Count; ++i) { if (OculusDevice.IsPresent(Sensor.ID.Tracker1 + i)) { count++; } } return(count); }
private void UpdateRightInput() { OculusDevice.Controller controllerMask; #if UNITY_ANDROID && !UNITY_EDITOR if (!positionalTracking) { controllerMask = OculusDevice.Controller.RTrackedRemote; } else #endif controllerMask = OculusDevice.Controller.RTouch; OculusDevice.ControllerState4 controllerState = OculusDevice.GetControllerState(controllerMask); float stickButton = OculusDevice.GetStickPress(controllerState) ? 1 : ( OculusDevice.GetStickTouch(controllerState) ? 0 : -1); if (positionalTracking) { joystick = new Vector3( OculusDevice.GetHorizontalStick(controllerState, false), OculusDevice.GetVerticalStick(controllerState, false), stickButton); } else { joystick = new Vector3( OculusDevice.GetHorizontalTouch(controllerState, false), OculusDevice.GetVerticalTouch(controllerState, false), stickButton); } indexTrigger = OculusDevice.GetTrigger1(controllerState, false); handTrigger = OculusDevice.GetTrigger2(controllerState, false); buttonAX = OculusDevice.GetButton1Press(controllerState) ? 1 : ( OculusDevice.GetButton1Touch(controllerState) ? 0 : -1); buttonBY = OculusDevice.GetButton2Press(controllerState) ? 1 : ( OculusDevice.GetButton2Touch(controllerState) ? 0 : -1); thumbrest = OculusDevice.GetThumbRest(controllerState) ? 0 : -1; }
public override void StartTracker(HumanoidControl _humanoid) { humanoid = _humanoid; if (humanoid.headTarget.unityVRHead.enabled && UnityVRDevice.xrDevice == UnityVRDevice.XRDeviceType.Oculus) { enabled = true; } if (!enabled || UnityVRDevice.xrDevice != UnityVRDevice.XRDeviceType.Oculus) { return; } OculusDevice.Start(); AddTracker(humanoid, "Oculus"); StartCameras(trackerTransform); }