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
- Required SpriteMask class (ID 331) is stripped when "Strip Engine Code" is enabled
- “Maximized serialized file backup not found” error is thrown when minimizing a window in a newly opened project
- Build stack trace contains invalid lines when building with IL2CPP using scripts with delegates containing generic types in the signature
- Entities Systems window has a “Show Full Player Loop” dropdown which does nothing when clicked after enabling “Show Full Player Loop”
- Entities Hierarchy Search “Show/Hide” button’s Lens Icon is blurry when the Editor is on an external monitor
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.