Architecture
Unity OpenXR: Spatial Entities functions as both an OpenXR Feature Group and an AR Foundation provider plug-in.
About OpenXR
OpenXR is an open-source standard that defines an interface between XR apps and platform runtimes. The OpenXR specification contains two categories of features:
- Core features: present on every platform
- Extensions: optional and might not be implemented by some platforms.
Unity's OpenXR Plug-in integrates core features, while this package integrates the OpenXR Spatial Entities Extensions (Khronos Blog) using Unity's OpenXR native API.
OpenXR extensions
The OpenXR Spatial Entities Extensions can be found in the Khronos Group OpenXR Specification.
This package enables support for the following OpenXR extensions in your project:
| Extension | Usage | Description |
|---|---|---|
| XR_EXT_future | Anchors, Markers, Planes | This extension provides a general-purpose framework for asynchronous API design, and is a dependency of all spatial entities extensions. |
| XR_EXT_spatial_anchor | Anchors | Enables apps to create anchors. |
| XR_EXT_spatial_entity | Anchors, Markers, Planes | This extension defines the core concepts and foundations for spatial entities, and is a dependency of all other spatial entities extensions. |
| XR_EXT_spatial_marker_tracking | Markers | Enables apps to detect and track markers. |
| XR_EXT_spatial_persistence | Anchors | Enables apps to discover persistent spatial entities across multiple OpenXR sessions. |
| XR_EXT_spatial_persistence_operations | Anchors | Enables apps to persist and unpersist spatial entities. |
| XR_EXT_spatial_plane_tracking | Planes | Enables apps to track planar surfaces in the environment. |
Note
Unity officially supports this package for use with the Meta Horizon OS and Android XR runtimes, but other OpenXR runtimes may also implement the required extensions. Refer to the OpenXR Runtime Extension Support Report for a self-reported list of OpenXR runtimes that support the required extensions.