Showing results for 
Search instead for 
Did you mean: 

OVRBoundary.GetGeometry returns incorrect play area data when using Link

Honored Guest

I am calling OVRBoundary.GetGeometry(OVRBoundary.BoundaryType.PlayArea) and receiving an array of four Vector3 as expected. Since the docs say these are in local space I'm converting them into world space by transforming them by OVRCameraRig.trackerAnchor.


This produces different results based on headset:

1. Correct on Rift S in Unity Editor (Windows)

2. Correct on Quest 3 in a build (Android)

3. Incorrect on Quest 3 + usb Link in Unity Editor (Windows)

4. Incorrect on Quest 3 + Air Link in Unity Editor (Windows)

5. Incorrect on Quest 3 + usb Link in build (Windows)


The common denominator seems to be Link. In this case while the actual dimensions seem correct, the OVRCameraRig.trackedAnchor has not been updated. It (and OvrCameraRig, and it's 'TrackingSpace' child) are all at identity. Which places the PlayArea points around where I booted the game, and not where the center of the PlayArea should be.

This can be reproduced by creating an empty scene and adding the OVRCameraRig, and setting the tracking origin to 'Stage', then visulising the PlayArea rectangle in some way. Adding a LineRenderer under the TrackedAnchor and populating it directly with positions from GetBoundary shows the issue.


Unity 2022.3.22f1 / Windows 10

Meta All-in-one SDK v63.0.0

Unity Oculus XR Plugin 4.2.0

OpenXR Plugin 1.10.0

Configured to use the 'Oculus' plugin via the Project Settings -> XR Plug-in Management.