Changelog
All notable changes to this package will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
[2.1.19] - 2021-12-15
[2.1.18] - 2021-04-01
Fixes
- Fixed an issue which caused black reflections on iOS when using AREnvironmentProbeManager.
- Fixed an issue which caused meshes produced by the ARMeshManager to be incorrectly transformed after a call to ARSessionOrigin.MakeContentAppearAt.
[2.1.16] - 2021-01-25
[2.1.14] - 2021-01-05
Fixes
- Fixed an error thrown on shutdown when a subsystem was already destroyed.
- Previously, when adding an environment probes, the world space position of the new probe was passed to the underlying AR framework instead of the session-relative pose. This would place the environment probe in the incorrect position and/or orientation if the session origin was not at the origin.
[2.1.10] - 2020-10-09
Fixes
- Fixed an issue which could cause the background camera texture to stop functioning correctly on certain devices running OpenGLES3.
[2.1.9] - 2020-10-06
Changes
- Update depedency on AR Subsystems package to version 2.1.3.
[2.1.8] - 2020-04-02
Updated
- Add support for XR Management
Fixes
- Patched a memory leak by destroying the camera textures when the camera manager is disabled.
[2.1.4] - 2019-08-06
Updated
- Update depedency on AR Subsystems package to version 2.1.1. This should not impact existing functionality, but helps with future compatibility.
[2.1.3] - 2019-08-06
Updated
- Update depedency on Legacy Input Helpers package to version 1.3.7. This should not impact existing functionality, but helps with future compatibility.
[2.1.1] - 2019-06-25
Updated
- 2019.3 verified release
New
- Add support for ARSession.notTrackingReason.
- Add an
ARMeshManagerto interface with theXRMeshSubsystem. This is useful for XR Plugins that can generate meshes at runtime.
[2.1.0-preview.4] - 2019-06-17
Improvements
- Added an option to synchronize the Unity frame with the AR session's update. See
ARSession.matchFrameRate. - Fix NativeArray handling when
ENABLE_UNITY_COLLECTIONS_CHECKSis set. This fixes an issue when running ARFoundation in the Editor. This is not set in the Player, so it is not an issue when running on device.
Changes
- Previously, a trackable manager's changed event (e.g.,
ARPlaneSubsystem.planesChanged) was invoked every frame even if nothing had changed. Now, it is only invoked on frames when a change has occurred.
[2.1.0-preview.3] - 2019-05-22
Fixes
- Fix documentation links.
[2.1.0-preview.2] - 2019-05-07
New
- Add support for image tracking (
XRImageTrackingSubsystem). - Add support for environment probes (
XREnvironmentProbeSubsystem). - Add support for face tracking (
XRFaceSubsystem). - Add support for object tracking (
XRObjectTrackingSubsystem).
[2.0.1] - 2019-03-05
Changes
- See the Migration Guide.
[1.1.0-preview.1] - 2019-01-16
Fixes
- Add dependency on Legacy Input Helpers, which were moved from Unity to a package in 2019.1.
[1.0.0-preview.22] - 2018-12-13
- Fix package dependency
[1.0.0-preview.21] - 2018-12-13
New
- Added Face Tracking support:
ARFaceManager,ARFace,ARFaceMeshVisualizerand related scripts. See documentation for usage.
Improvements
- Plane detection modes: Add ability to selectively enable detection for horizontal, vertical, or both types of planes. The
ARPlaneManagerincludes a new setting, which defaults to both. - Add support for setting the camera focus mode. Added a new component,
ARCameraOptions, which lets you set the focus mode.
Changes
- The light estimation option, which was previously on the
ARSessioncomponent, has been moved to the newARCameraOptionscomponent.
[1.0.0-preview.20] - 2018-11-06
Improvements
- Support reference points reported without a corresponding
TryAddReferencePointcall. This handles reference points that are added by some other means, e.g., loaded from a serialized session.
[1.0.0-preview.19] - 2018-10-10
- Added support for
XRCameraExtensionsAPI to get the raw camera image data on the CPU. See the manual documentation for more information.
[1.0.0-preview.18] - 2018-09-13
Fixes
- The
ARPlaneMeshVisualizerdid not disable its visible components (MeshRendererandLineRenderer) when disabled. This has been fixed.
Changes
- The
ARPlaneManager,ARPointCloudManager, andARReferencePointManagerall instantiate either prefabs that you specify orGameObjects with at least anARPlane,ARPointCloud, orARReferencePoint, respectively, on them. The instantiatedGameObject's layer was set to match theARSessionOrigin, overwriting the layer specified in the prefab. This has been changed so that if a prefab is specified, no changes to the layer are made. If no prefab is specified, then a newGameObjectis created, and its layer will match that of theARSessionOrigin'sGameObject.
New
- Added
ARPlane.normalto get theARPlane's normal in world space.
LWRP support
Added LWRP support by allowing ARCameraBackground to use a background renderer that overrides the default functionality. This works in conjunction with some LWRPSupport files (see arfoundation-samples) that will live in your LWRP project.
[1.0.0-preview.17] - 2018-08-02
Fixes
- Add
FormerlySerializedAsattribute to serialized field changes toARCameraBackground.
[1.0.0-preview.16] - 2018-07-26
Change
- Removed static constructor from
ARSubsystemManager. This allows access to the manager without forcing the creation of the subsystems, making the initialization more flexible.
[1.0.0-preview.15] - 2018-07-26
Fixes
ARPlane.vertexChangedThresholdis no longer allowed to be negative.- The
ARCameraBackgroundcomponent did not reset the projection matrix on disable, leading to stretching or other distortion. This has been fixed. - The
ARCameraBackgroundcomponent did not properly handle an overriden material. This has been fixed (see API Changes below). - The
ARPlaneMeshGeneratorswas meant to generate a triangle fan about the center of the plane. However, indices were instead generated as a fan about one of the bounary points. The visual result is similar, but can lead to long thin triangles. This has been fixed to use the plane's center point as intended. - Update for compatibility with 2018.3
- If the
ARPlaneMeshVisualizerhas aLineRendereron it, then it will be scaled to match theARPlane's scale, making the visual width invariant under differingARSessionOriginscales. - When the
ARPointCloudManagerinstantiated a point cloud prefab, it did not change its transform. If it was not identity, then feature points would appear in unexpected places. It now instantiates the point cloud prefab with identity transform. - The menu item "GameObject > XR > AR Default Point Cloud" created a
GameObjectwhich used a particle system whose "Scaling Mode" was set to "Local". If used as theARPointCloudManager's point cloud prefab, this would produce odd results when theARSessionOriginwas scaled. The correct setting is "Hierarchy", and the utility now creates a particle system with the correct setting.
API Changes
ARCameraBackground
The API for overriding the material has been refactored. Previously, a custom material could be set with the ARCameraBackground.material setter, but this might be overwritten later if the option to override was disabled.
- Rename:
overrideMaterialis nowuseCustomMaterial - New member:
customMaterial - The following properties are now private:
materialsetter (getter is still public)backgroundRenderer
Use the ARCameraBackground.material getter to get the currently active material.
[1.0.0-preview.14] - 2018-07-17
Fixes
- Fixed a bug in the
ARCameraBackgroundwhich would not render the camera texture properly if theARSessionhad been destroyed and then recreated or if theARCameraBackgroundhad been disabled and then re-enabled. ARSubsystemManager.systemState's setter was not private, allowing user code to change the system state. The setter is now private.ARPlane.trackingStatereturned a cached value, which was incorrect if theARSessionwas no longer active.
Improvements
- Added
ARSession.Reset()to destroy the current AR Session and establish a new one. This destroys all trackables, such as planes. - Added an
ARSubsystemManager.sessionDestroyedevent. TheARPlaneManager,ARPointCloudManager, andARReferencePointManagersubscribe to this event, and they remove their trackables when theARSessionis destroyed.
[1.0.0-preview.13] - 2018-07-03
- Fixed a bug where point clouds did not stop rendering when disabled.
- Added a getter on the
ARPointCloudManagerfor the instantiatedARPointCloud. - Added UVs to the
Meshgenerated by theARPlaneMeshVisualizer. - Refactored out plane mesh generation functionality into a new static class
ARPlaneMeshGenerators. - Added a
meshUpdatedevent to theARPlaneMeshVisualizer, which lets you customize the generatedMesh. - Added AR Icons.
[1.0.0-preview.12] - 2018-06-14
- Add color correction value to
LightEstimationData.
[1.0.0-preview.11] - 2018-06-08
- Improve lifecycle reporting: remove public members
ARSubsystemManager.availabilityandARSubsystemManager.trackingState. Combine withARSubsystemManager.systemStateand the public eventARSubsystemManager.systemStateChanged. - Docs improvements
- Move
ParticleSystemto the top of theARDebugPointCloudVisualizer
[1.0.0-preview.10] - 2018-06-06
- Update documentation: ARSession image and written description.
[1.0.0-preview.9] - 2018-06-06
- Rename
ARBackgroundRenderertoARCameraBackground - Unify
ARSessionState&ARSystemStateenums
[1.0.0-preview.8] - 2018-05-23
- Change dependency to
ARExtension1.0.0-preview.2
[1.0.0-preview.7] - 2018-05-23
- Remove "timeout" from AR Session
- Add availability and AR install support
- Significant rework to startup lifecycle & asynchronous availability check
[1.0.0-preview.6] - 2018-04-25
Rename ARUtilities to ARFoundation
- This package is now called
ARFoundation. - Removed
ARPlaceOnPlane,ARMakeAppearOnPlane,ARPlaneMeshVisualizer, andARPointCloudParticleVisualizeras these were deemed sample content. - Removed setup wizard.
- Renamed
ARRigtoARSessionOrigin. ARSessionOriginno longer requires itsCamerato be a child of itself.