com.unity.xr.arfoundation 6.0.0-pre.3
Source docsNotes: processedReleased September 15, 2023
Unity Compatibility
Minimum Unity: 2023.2
Package Dependencies
- com.unity.editorcoroutines (1.0.0)
- com.unity.inputsystem (1.6.3)
- com.unity.mathematics (1.2.6)
- com.unity.modules.particlesystem (1.0.0)
- com.unity.modules.ui (1.0.0)
- com.unity.modules.unityanalytics (1.0.0)
- com.unity.modules.unitywebrequest (1.0.0)
- com.unity.ugui (2.0.0)
- com.unity.xr.core-utils (2.2.2)
- com.unity.xr.management (4.4.0)
✨ 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.
