diff --git a/Runtime/HumanoidControl/Scripts/Extensions/UnityXR/UnityXRController.cs b/Runtime/HumanoidControl/Scripts/Extensions/UnityXR/UnityXRController.cs index 3fba407..fd0847f 100644 --- a/Runtime/HumanoidControl/Scripts/Extensions/UnityXR/UnityXRController.cs +++ b/Runtime/HumanoidControl/Scripts/Extensions/UnityXR/UnityXRController.cs @@ -7,11 +7,6 @@ namespace Passer.Tracking { public class UnityXRController : ControllerComponent { #if pUNITYXR - //public TrackerComponent tracker; - //public Transform sensorTransform { - // get { return this.transform; } - //} - protected InputDevice device; protected XRNode xrNode; @@ -182,18 +177,21 @@ namespace Passer.Tracking { status = Tracker.Status.Present; - Vector3 position; - if (device.TryGetFeatureValue(CommonUsages.devicePosition, out position)) { - transform.position = trackerTransform.TransformPoint(position); - positionConfidence = 1; - status = Tracker.Status.Tracking; - } + bool isTracked = false; + if (device.TryGetFeatureValue(CommonUsages.isTracked, out isTracked)) { + Vector3 position; + if (isTracked && device.TryGetFeatureValue(CommonUsages.devicePosition, out position)) { + transform.position = trackerTransform.TransformPoint(position); + positionConfidence = 1; + status = Tracker.Status.Tracking; + } - Quaternion rotation; - if (device.TryGetFeatureValue(CommonUsages.deviceRotation, out rotation)) { - transform.rotation = trackerTransform.rotation * rotation; - rotationConfidence = 1; - status = Tracker.Status.Tracking; + Quaternion rotation; + if (isTracked && device.TryGetFeatureValue(CommonUsages.deviceRotation, out rotation)) { + transform.rotation = trackerTransform.rotation * rotation; + rotationConfidence = 1; + status = Tracker.Status.Tracking; + } } UpdateInput();