com.unity.xr.arfoundation 6.0.0-pre.3

com.unity.xr.arfoundation

Source docs
Notes: processedReleased September 15, 2023

Browse versions

PreviousNext

Unity Compatibility

Minimum Unity: 2023.2

Package Dependencies

Features

  • Added [XRObjectTrackingSubsystemDescriptor.Register(XRObjectTrackingSubsystemDescriptor.Cinfo)](xref:UnityEngine.XR.ARSubsystems.XRObjectTrackingSubsystemDescriptor.Register\(UnityEngine.XR.ARSubsystems.XRObjectTrackingSubsystemDescriptor.Cinfo\)) to replace the deprecated register methods present in `XRObjectTrackingSubsystem`
  • Added [XRParticipantSubsystemDescriptor.Register(XRParticipantSubsystemDescriptor.Cinfo)](UnityEngine.XR.ARSubsystems.XRParticipantSubsystemDescriptor.Register\(UnityEngine.XR.ARSubsystems.XRParticipantSubsystemDescriptor.Cinfo\)) to replace the deprecated register methods present in `XRParticipantSubsystem`
  • Added support for asynchronous anchor creation. Refer to [What's New](xref:arfoundation-whats-new#asynchronous-tryaddanchor-api) for more information.
  • Added support for Image Stabilization, which helps stabilize shaky video from the camera.
  • Added support for Occlusion to XR Simulation.
  • Added the following subsystem descriptor registration methods for consistency with other subsystem descriptors:
  • - [XRCameraSubsystemDescriptor.Register](xref:UnityEngine.XR.ARSubsystems.XRCameraSubsystemDescriptor.Register)
  • - [XREnvironmentProbeSubsystemDescriptor.Register](xref:UnityEngine.XR.ARSubsystems.XREnvironmentProbeSubsystemDescriptor.Register)
  • - [XRHumanBodySubsystemDescriptor.Register](xref:UnityEngine.XR.ARSubsystems.XRHumanBodySubsystemDescriptor.Register)
  • - [XROcclusionSubsystemDescriptor.Register](xref:UnityEngine.XR.ARSubsystems.XROcclusionSubsystemDescriptor.Register)

📈 Improvements

  • Changed [ScheduleAddImageWithValidationJob](xref:UnityEngine.XR.ARFoundation.MutableRuntimeReferenceImageLibraryExtensions.ScheduleAddImageWithValidationJob) to check if the `ARSession.state` has reached the ready state before scheduling the add image operation.
  • Changed `ARTrackable` to now implement the `ITrackable` interface, enabling generic API designs when dealing with trackables.
  • Changed `XRPlaneSubsystem.Provider.requestedPlaneDetectionMode` to `abstract` from `virtual`.
  • Changed `Promise.OnKeepWaiting()` to `virtual` instead of `abstract`.
  • Changed `SubsystemLifecycleManager.GetActiveSubsystemInstance()` to `protected static` from `protected`, as it does not use any instance members of the `SubsystemLifecycleManager` class.
  • Changed the life cycle behavior of [ARAnchor](xref:UnityEngine.XR.ARFoundation.ARAnchor) in the event that adding the anchor to the `XRAnchorSubsystem` failed. Instead of retrying the add operation every frame, the `ARAnchor` component now disables itself after the first failed attempt.
  • ### Deprecated
  • Deprecated the structs `XRObjectTrackingSubsystemDescriptor.Capabilities` and `XRParticipantSubsystemDescriptor.Capabilities`.
  • Deprecated the `XRObjectTrackingSubsystemDescriptor.Register` and `XRParticipantSubsystemDescriptor.Register` methods that use the now-deprecated `Capabilities` struct.
  • Deprecated and replaced the following APIs for consistency with other subsystems:
  • - `XRCameraSubsystemCinfo` to `XRCameraSubsystemDescriptor.Cinfo`
  • - `FaceSubsystemParams` to `XRFaceSubsystemDescriptor.Cinfo`
  • - `XRHumanBodySubsystemCinfo` to `XRHumanBodySubsystemDescriptor.Cinfo`
  • - `XREnvironmentProbeSubsystemCinfo` to `XREnvironmentProbeSubsystemDescriptor.Cinfo`
  • - `XROcclusionSubsystemCinfo` to `XROcclusionSubsystemDescriptor.Cinfo`
  • - `XRAnchorSubsystemDescriptor.Create` to `XRAnchorSubsystemDescriptor.Register`
  • - `XRFaceSubsystemDescriptor.Create` to `XRFaceSubsystemDescriptor.Register`
  • - `XRImageTrackingSubsystemDescriptor.Create` to `XRImageTrackingSubsystemDescriptor.Register`
  • - `XRPlaneSubsystemDescriptor.Create` to `XRPlaneSubsystemDescriptor.Register`
  • - `XRPointCloudSubsystemDescriptor.RegisterDescriptor` to `XRPointCloudSubsystemDescriptor.Register`
  • - `XRRaycastSubsystemDescriptor.RegisterDescriptor` to `XRRaycastSubsystemDescriptor.Register`
  • - `XRSessionSubsystemDescriptor.RegisterDescriptor` to `XRSessionSubsystemDescriptor.Register`
  • - `XRCameraSubsystem.Register` to `XRCameraSubsystemDescriptor.Register`
  • - `XREnvironmentProbeSubsystem.Register` to `XREnvironmentProbeSubsystemDescriptor.Register`
  • - `XRHumanBodySubsystem.Register` to `XRHumanBodySubsystemDescriptor.Register`
  • - `XROcclusionSubsystem.Register` to `XROcclusionSubsystemDescriptor.Register`

API Changes

  • Removed the `Description` attribute from values of several enums, as the attribute was unused:
  • - `XRCameraFrameProperties`
  • - `AREnvironmentProbePlacementType`
  • - `CameraFocusMode`
  • - `LightEstimationMode`
  • - `EnvironmentDepthMode`
  • - `HumanSegmentationDepthMode`
  • - `HumanSegmentationStencilMode`
  • - `OcclusionPreferenceMode`
  • Removed the following deprecated APIs:
  • - `ARAnchorManager.AddAnchor` method
  • - `ARAnchorManager.RemoveAnchor` method
  • - `ARCamerManager.focusMode` property
  • - `ARCamerManager.lightEstimationMode` property
  • - `ARCamerManager.TryGetLatestImage` method
  • - `AREnvironmentProbeManager.automaticPlacement` property
  • - `AREnvironmentProbeManager.environmentTextureHDR` property
  • - `AREnvironmentProbeManager.AddEnvironmentProbe` method
  • - `AREnvironmentProbeManager.RemoveEnvironmentProbe` method
  • - `ARFaceManager.maximumFaceCount` property
  • - `ARHumanBodyManager.humanBodyPose2DEstimationEnabled` property
  • - `ARHumanBodyManager.humanBodyPose3DEstimationEnabled` property
  • - `ARHumanBodyManager.humanBodyPose3DScaleEstimationEnabled` property
  • - `AROcclusionManager.humanSegmentationStencilMode` property
  • - `AROcclusionManager.humanSegmentationDepthMode` property
  • - `ARPlaneManager.detectionMode` property
  • - `ARSession.matchFrameRate` property
  • - `ARTrackableManager.sessionOrigin` property
  • - `ARTrackedImageManager.maxNumberOfMovingImages` property
  • - `MutableRuntimeReferenceImageLibrary.ScheduleAddImageJob` method
  • - `XRAnchorSubsystemDescriptor.Cinfo.subsystemImplementationType` property
  • - `XRCameraSubsystem.TryGetLatestImage` method
  • - `XRCameraSubsystemCinfo.implementationType` property
  • - `XREnvironmentProbeSubsystemCinfo.implmentationType` property
  • - `FaceSubsystemParams.subsystemImplementationType` property
  • - `XRHumanBodySubsystemCinfo.implementationType` property
  • - `XRImageTrackingSubsystem.Cinfo.subsystemImplementationType` property
  • - `XROcclusionSubsystemCinfo.implementationType` property
  • - `XROcclusionSubsystemCinfo.supportsHumanSegmentationStencilImage` property
  • - `XROcclusionSubsystemCinfo.supportsHumanSegmentationDepthImage` property
  • - `XROcclusionSubsystemCinfo.queryForSupportsEnvironmentDepthImage` property
  • - `XROcclusionSubsystemCinfo.queryForSupportsEnvironmentDepthConfidenceImage` property
  • - `XROcclusionSubsystemDescriptor.supportsHumanSegmentationStencilImage` property
  • - `XROcclusionSubsystemDescriptor.supportsHumanSegmentationDepthImage` property
  • - `XROcclusionSubsystemDescriptor.supportsEnvironmentDepthImage` property
  • - `XROcclusionSubsystemDescriptor.supportsEnvironmentDepthConfidenceImage` property
  • - `XRPlaneSubsystemDescriptor.Cinfo.subsystemImplementationType` property
  • - `XRPointCloudSubsystemDescriptor.Cinfo.implementationType` property
  • - `XRRaycastSubsystemDescriptor.Cinfo.subsystemImplementationType` property
  • - `XRReferenceObjectLibrary.indexOf` method
  • - `XRSessionSubsystem.subsystemImplementationType` property
  • - `XRSubsystem` class
  • Removed the image file `/Editor/Icons/ARVR@4x.png` as it was unused.

🔧 Bug Fixes

  • Fixed [ScheduleAddImageJob](xref:UnityEngine.XR.ARFoundation.MutableRuntimeReferenceImageLibraryExtensions.ScheduleAddImageJob) and [ScheduleAddImageWithValidationJob](xref:UnityEngine.XR.ARFoundation.MutableRuntimeReferenceImageLibraryExtensions.ScheduleAddImageWithValidationJob) documentation to describe the correct exceptions thrown if `library` is null.
  • Fixed an issue in XR Simulation where disabling and re-enabling the AR Plane Manager component would cause duplicate planes to be detected where planes had already been detected previously.