Search Issue Tracker
Feature Request
Feature Request in 6000.5.X
Votes
1
Found in
6000.0.58f1
6000.2.6f1
6000.3.0b4
6000.4.0a1
6000.5.0a1
Issue ID
UUM-120295
Regression
No
GameObject orientation incorrect when restarting Player after recentering the view on Meta Quest and Android XR
Reproduction steps:
1. Open the attached project “ReproProject“
2. Switch to the Android platform (go to File → Build Profiles → In the list, select Android, in the click on the button “Switch Platform“ located in right bottom side of the Build Profiles window)
3. Connect Meta Quest device
4. Build & Run to the device
5. Make sure that the Sphere GameObject is facing you after the Player loads, and Cube GameObject is behind
6. Close the Player
7. Turn 90 degrees with the headset on
8. With the right controller, recenter the view (to recenter, press and hold the Meta button for 1-2 seconds)
9. Restart the Player
10. Observe the result in Player
Expected result: The sphere is located in front of the camera
Actual result: The sphere is located off by 90 degrees
Reproducible in: 2023.1.0a26, 6000.0.58f1, 6000.2.6f1, 6000.3.0b4, 6000.4.0a1
Could not test with: 2023.1.0a1, 2023.1.0a15 (unsolvable Input System package errors, Editor freezes)
Reproducible on: Windows 11
Not reproducible on: No other environments tested
Reproducible on devices:
- Oculus Quest 3 (Quest 3), CPU: Snapdragon XR2 Gen 2 (SM8550), GPU: Adreno (TM) 740
- Oculus Quest 2 (Quest 2), CPU: Snapdragon XR2, GPU: Adreno 650
Notes:
- The Sphere GameObject never appears in the front when testing on Quest 3 (When opening the Player the first time)
- The issue should reproduce on Android XR device similarly. CQA was not able to test because there is no such device available locally
- Reproduces in Play Mode as well
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- "Shader warning in 'Hidden/Light2D': implicit truncation of vector type" is thrown when building Universal 2D template
- AI Assistant breaks compilation of packages using System.Runtime.CompilerServices.Unsafe via auto-referencing
- Unity Hub checks the "Documentation" module by default on the 6.4 and 6.5 streams despite that it was unchecked with the previous installs
- Shortcut that toggles between Dopesheet and Curves Views in the Animation Window's Timeline is mislabed
- Property List Items Overlap onto the Property List's top edge when scrolling through a long Property List
Resolution Note:
This behavior is what is expected based on the OpenXR spec for LOCAL_FLOOR. There is no consideration for what the expected behavior is between sessions, and the orientation, even during a recenter operation, is owned by the runtime (OS) during and between sessions. The restoration of a recentered pose between sessions we would consider a feature request at this time.
If you want to provide this behavior in your applications, there are ways to manually capture the orientation changes during a recenter and use those to restore the previous session's orientation. One way in which this can be done is by using a persistent anchor with additional pose data that would need to be saved/loaded by a custom component responsible for manipulating the XR Origin accordingly.
Resolution Note (6000.5.X):
This behavior is what is expected based on the OpenXR spec for LOCAL_FLOOR. There is no consideration for what the expected behavior is between sessions, and the orientation, even during a recenter operation, is owned by the runtime (OS) during and between sessions. The restoration of a recentered pose between sessions we would consider a feature request at this time.
If you want to provide this behavior in your applications, there are ways to manually capture the orientation changes during a recenter and use those to restore the previous session's orientation. One way in which this can be done is by using a persistent anchor with additional pose data that would need to be saved/loaded by a custom component responsible for manipulating the XR Origin accordingly.