cancel
Showing results for 
Search instead for 
Did you mean: 

Problem with OVROverlayCanvas UI shifts after resume from sleep mode

vittodev
Honored Guest
Platform: Meta Quest 3  
Unity Version: 6.0.37
Meta SDK Version: 76.0.0 (com.meta.xr.sdk.core)  
XR Backend: OpenXR  
Rendering: URP  
Issue Type: UI / Overlay behavior after suspend-resume cycle  
 
:question_mark:Problem:
 
I'm using `OVROverlayCanvas` to render a UI overlay in VR, which works fine initially.  
However, after the user **suspends the device (sleep mode) and resumes**, the overlay behaves incorrectly:
 
- The UI appears to **move with the user’s view** or “sticks to the face”.
- Even though the canvas GameObject retains its original transform, the overlay seems to be rendered in a wrong reference frame.
 
---
 
 :white_heavy_check_mark: What I’ve already tried:
 
- Called `SetFrameDirty()` and `UpdateOverlaySettings()` on resume (`OnApplicationFocus`, `OnApplicationPause`).
- Restored original `transform.position` and `rotation`.
- Avoided `SetActive(false)`.
- Reparented temporarily to force matrix recalculation (this sometimes helps).
- Ensured the canvas is not under the OVRCameraRig or CenterEyeAnchor.
- Only one `OVROverlayCanvas` is active.
 
---
 
🔍Additional Notes:
 
- Using `CanvasShape = Flat`.
- Using `OverlayType = Underlay`.
- This issue only happens after suspend/resume. Not reproducible during normal runtime.
 
---
 
 💬 Question:
 
Is this a known issue with OVROverlayCanvas in Quest 3?
 
- Is there any **official workaround or best practice** to force correct projection/rendering after resume?
- Should I manually re-initialize the overlay or recreate the canvas entirely?
- Would switching to a standard `World Space Canvas` avoid this behavior?
 
 
Thanks in advance for any suggestions or insights!


Screenshot 2025-05-20 122854.png

 

0 REPLIES 0