diff --git a/Runtime/HumanoidControl/Scripts/Extensions/UnityXR/UnityXRHead.cs b/Runtime/HumanoidControl/Scripts/Extensions/UnityXR/UnityXRHead.cs index 5ed3e07..8627a07 100644 --- a/Runtime/HumanoidControl/Scripts/Extensions/UnityXR/UnityXRHead.cs +++ b/Runtime/HumanoidControl/Scripts/Extensions/UnityXR/UnityXRHead.cs @@ -82,6 +82,17 @@ namespace Passer.Humanoid { return sensorComponent as UnityXRHmd; } + public void UpdateSensorLocation() { + Vector3 position = headTarget.transform.TransformPoint(headTarget.head2eyes); + Quaternion rotation = headTarget.transform.rotation; + + UnityXR unityXRtracker = tracker.trackerComponent as UnityXR; + sensorComponent = unityXRtracker.GetHmd(position, rotation); + + sensorComponent.transform.position = position; + sensorComponent.transform.rotation = rotation; + } + #endregion #region Start diff --git a/Runtime/HumanoidControl/Scripts/HumanoidControl.cs b/Runtime/HumanoidControl/Scripts/HumanoidControl.cs index bb17943..1d86e01 100644 --- a/Runtime/HumanoidControl/Scripts/HumanoidControl.cs +++ b/Runtime/HumanoidControl/Scripts/HumanoidControl.cs @@ -453,6 +453,9 @@ namespace Passer.Humanoid { AddCharacterColliders(); avatarNeckHeight = GetAvatarNeckHeight(); + if (headTarget.unityXR != null) + headTarget.unityXR.UpdateSensorLocation(); + switch (scaling) { case ScalingType.SetHeightToAvatar: SetTrackingHeightToAvatar();