com.unity.xr.arfoundation 6.4.0

com.unity.xr.arfoundation

Source docs
Notes: processedReleased December 9, 2025

Browse versions

PreviousNext

Unity Compatibility

Minimum Unity: 6000.0

Package Dependencies

Features

  • Added `XRMarkerSubsystemDescriptor.Cinfo` properties for `id`, `providerType`, and `subsystemTypeOverride` that are needed during subsystem registration.
  • Added [XRBoundingBoxBuilder](xref:UnityEngine.XR.ARSubsystems.XRBoundingBoxBuilder), [BoundedPlaneBuilder](xref:UnityEngine.XR.ARSubsystems.BoundedPlaneBuilder), and [XRMarkerBuilder](xref:UnityEngine.XR.ARSubsystems.XRMarkerBuilder) which provide fluent APIs for constructing `XRBoundingBox`, `BoundedPlane`, and `XRMarker` instances, respectively.
  • Added `XRMarkerBuilder.WithPose` overload that takes an OpenXR `XrPosef` representing the session space pose and converts it to a Unity world space pose to build the marker with.
  • Added `InnerWallFace` semantic label to [PlaneClassifications](xref:UnityEngine.XR.ARSubsystems.PlaneClassifications).
  • Added support for the `IEquatable` and `IEquatable>` interfaces to [Result\](xref:UnityEngine.XR.ARSubsystems.Result`1).
  • Added a `ToString` override to [XRResultStatus](xref:UnityEngine.XR.ARSubsystems.XRResultStatus).
  • Added a `ToString` override to [Result\](xref:UnityEngine.XR.ARSubsystems.Result`1).
  • Added an implicit conversion operator from [SerializableGuid](xref:UnityEngine.XR.ARSubsystems.SerializableGuid) to XrUuid if your project contains OpenXR Plug-in 1.16.0 or newer.

📈 Improvements

  • Changed pre-release property types `ARMarker.markerId` and `XRMarker.markerId` from `int` to `uint`.
  • Changed the type of [XRBoundingBox](xref:UnityEngine.XR.ARSubsystems.XRBoundingBox) from `struct` to `readonly struct`.
  • Changed the pre-release methods `XRMarkerSubsystem.TryGetStringData` and `XRMarkerSubsystem.TryGetBytesData` to now take the marker's `TrackableId` as a new argument when querying for a marker's encoded data.
  • ### Deprecated
  • Deprecated and replaced the following properties of [XRAnchorSubsystemDescriptor.Cinfo](xref:UnityEngine.XR.ARSubsystems.XRAnchorSubsystemDescriptor.Cinfo) to allow providers to determine at runtime whether AR Foundation persistent anchor APIs are supported::
  • - `supportsSaveAnchor` to `supportsSaveAnchorDelegate`
  • - `supportsLoadAnchor` to `supportsLoadAnchorDelegate`
  • - `supportsEraseAnchor` to `supportsEraseAnchorDelegate`
  • - `supportsGetSavedAnchorIds` to `supportsGetSavedAnchorIdsDelegate`

🔧 Bug Fixes

  • Fixed an issue with the XR Simulation provider where creating new sessions through loading new scenes would throw exceptions and fail to start those new sessions.
  • Fixed an issue where disabling the AROcclusionManager could cause some objects to become incorrectly occluded for ARCore and ARKit apps.
  • Fixed [ARRaycastManager](xref:UnityEngine.XR.ARFoundation.ARRaycastManager) so that fallback raycasts can still be invoked if the AR Raycast Manager component is created at runtime.
  • Fixed internal code so that if trackables of different types share the same `TrackableId`, their GameObjects are spawned correctly with no exceptions logged to the console. (ARFB-665).
  • Fixed `LoaderUtility` so that it correctly initializes or deinitializes the OpenXR Loader when you call `Initialize` or `Deinitialize`, respectfully.
  • Fixed the following methods of [XRBoundingBox](xref:UnityEngine.XR.ARSubsystems.XRBoundingBox):
  • - `ToString` now lists the struct members in the order they appear in the stuct
  • - `Equals` now correctly considers a bounding box's `parentId` when comparing for equality
  • - `GetHashCode` now correctly considers a bounding box's `parentId` when generating a hash code.
  • Fixed pre-release `XRMarker` API documentation to indicate that its pose is in Unity world space and not in OpenXR session space.
  • Fixed `ARTrackableManager` so that it calls `OnAfterSetSessionRelativeData` for added trackables.
  • Fixed `SimulatedTrackedImage` and `SimulatedBoundingBox` so that they no longer use APIs which are deprecated in Unity 6.4 or newer.