Releases: google-ar/arcore-unity-extensions
ARCore Extensions for AR Foundation v1.46.0
Known issues
- Selecting Android API level 35 or Automatic (Highest installed) as the target SDK for ARCore projects in Unity versions below 6, causes a known incompatibility issue. For a workaround, please see this post on Unity Discussions to add Android 15 support to your Unity project.
Breaking & behavioral changes
- ARCore's
targetSdkVersion
has been updated to Android API level 35. If your app does not specify atargetSdkVersion
, your app'stargetSdkVersion
will become 35 due to manifest merging. Specifying a Target API Level in your Unity project's Project Settings > Player > Android > Other Settings will override ARCore'stargetSdkVersion
value.
Bug fixes
- Fixed the camera's far plane being set too close in the ARCore Extensions SDK's Geospatial sample for ARF 5. The far plane now matches the one in the ARF 4 scene.
ARCore Extensions for AR Foundation v1.45.0
New APIs and capabilities
Support for AR Foundation 5
ARCore Extensions for AR Foundation now officially supports AR Foundation 5.
When using AR Foundation 5 (the verified version on Unity versions 2022 and 2023), use the following installation methods to obtain a compatible version of ARCore Extensions for AR Foundation:
- Through
Add package from git url...
: usehttps://github.com/google-ar/arcore-unity-extensions.git#arf5
, - Through
Add package from tarball...
: use a release denoted byarf5
from the releases page.
Projects remaining on AR Foundation version 4 can use the following installation methods:
- Through
Add package from git url...
: usehttps://github.com/google-ar/arcore-unity-extensions.git#arf4
, - Through
Add package from tarball...
: use a release denoted byarf4
from the releases page.
To upgrade your project from AR Foundation 4 to AR Foundation 5, see the migration guide.
Custom scripting symbols such as ARCORE_USE_ARF_5
from the beta support are no longer used.
ARCore Extensions for AR Foundation v1.44.0
Bug fixes
- Fixed situations where the normal vector of vertical planes would sometimes face away from the camera.
google/model-viewer#4771
.
ARCore Extensions for AR Foundation v1.43.0
Other changes
- Geospatial Creator's Search feature now uses Google's New Places API. To use the search feature, enable the "Places API (New)" in the Google Cloud Console.
- When using the Geospatial Creator API to modify the geodetic location of an
ARGeospatialCreatorAnchor
, the correspondingGameObject.transform.position
is now immediately updated to move the object to the updated location in Unity world coordinates. It is no longer required for a frame to advance before this update occurs.
Bug fixes
- When "Override terrain/rooftop altitude in Editor Scene View" is enabled for a terrain or rooftop anchor, the anchor's height seen in the Editor Scene View is now calculated by offsetting the override value with the "relative altitude from terrain/rooftop" value. WGS84 anchor behavior is unchanged since its altitude parameter is not relative to the override.
ARCore Extensions for AR Foundation v1.42.0
New APIs and capabilities
- A "Snap to Tile" button was added in the
ARGeospatialCreatorAnchor
's Editor Inspector panel. This button sets a Terrain or Rooftop anchor's Editor-only altitude value to the top of a 3D Tile geometry at the anchor’s current latitude and longitude. Note that this property does not affect the behavior at runtime. This helps adjust the anchor’s position in the editor to match its position at runtime.
Bug fixes
- Geospatial Creator will now adjust the Editor camera's altitude relative to the terrain tiles when using the "Search for Location" feature. The camera will no longer be fixed at a very high altitude over the terrain and will be closer to the tiles.
ARCore Extensions for AR Foundation v1.41.0
Breaking & behavioral changes
- The deprecated class
ARCloudReferencePoint
, enumCloudReferenceState
and methodsARAnchorManagerExtensions.AddCloudReferencePoint()
andARAnchorManagerExtensions.ResolveCloudReferenceId()
have been removed.
New APIs and capabilities
-
Public C# APIs have been added for creating and manipulating Geospatial Creator objects in Editor mode. The newly-available classes and APIs are described in the Geospatial Creator API Guide.
- If you have C# scripts which reference the previously-undocumented classes
ARGeospatialCreatorAnchor
,ARGeospatialCreatorOrigin
, andAnchorAltitudeType
, note that these classes have been moved from theGoogle.XR.ARCoreExtensions.GeospatialCreator.Internal
namespace toGoogle.XR.ARCoreExtensions.GeospatialCreator
.
- If you have C# scripts which reference the previously-undocumented classes
-
ARCore Extensions now has beta support for AR Foundation versions 5.x. To migrate a project to AR Foundation versions 5.x, see the migration guide.
-
Updated sample code to add support for AR Foundation 5.x. Use a Custom scripting symbol called
ARCORE_USE_ARF_5
to remove warnings like 'ARSessionOrigin' is obsolete: 'ARSessionOrigin has been deprecated. Use XROrigin instead.'
Bug fixes
- Fixed an issue on the Geospatial Creator Origin inspector panel where clicking the "Search for Location" button opened an invalid Search window if the Origin's
Cesium3DTileset
was missing or lacked an API key. - Fixed an issue where the Geospatial Creator Origin's Unity world coordinate (x, y, z) wasn't taken into account when computing an Anchor's lat/lon/alt position.
ARCore Extensions for AR Foundation v1.40.0
New APIs and capabilities
- The Scene Semantics API is now available on iOS in addition to Android. See Introduction to Scene Semantics for more information.
- We've added the power of the Google Places API to Geospatial Creator, allowing you to search for real-world locations and assign them to your Geospatial Creator objects from within the Unity Editor. See the Geospatial Creator Search documentation for more information.
Breaking & behavioral changes
- ARCore's
targetSdkVersion
has been updated to Android API level 34. If your app does not specify atargetSdkVersion
, your app'stargetSdkVersion
will become 34 due to manifest merging. Specifying a Target API Level in your Unity project's Project Settings > Player > Android > Other Settings will override ARCore'stargetSdkVersion
value.
Other changes
- Updated com.google.android.gms:play-services-location to 17+ for Android 14 compatibility. This will require Custom Gradle Properties Template to be enabled under Project Settings > Player > Android > Publishing Settings > Build if you are using a Unity version below 2020.3.
- New Geospatial Creator Anchor objects will be by default placed at the Unity world coordinate origin, [x=0, y=0, z=0]. Previously, the default location was the geodetic origin, [lat=0, lon=0, altitude=0].
- Upgraded ExternalDependencyManager to v1.2.177 to enable Jetifier by default. See details in EDM's change log.
Bug fixes
- Refactored Geospatial Creator's
AltitudeType
enum, and renamed "ManualAltitude" to "WGS84". Scene files will be automatically migrated to the new format, so you may notice your Scene file has been modified after updating. - #137: Fixed potential build errors for non-iOS and non-Android build targets due to the Geospatial Creator assembly being enabled for unsupported platforms.
- Improved Geospatial Creator's error logging to provide better and more relevant context for problems.
- The iOS SDK no longer supports deployment targets < 12.0.
- #139: Fixed a crash on iOS caused by creating Rooftop or Terrain Anchors outside of supported areas.
ARCore Extensions for AR Foundation v1.39.0
Known issues
- None.
Breaking & behavioral changes
- None.
New APIs and capabilities
- None.
Deprecations
- None.
Other changes
- None.
Bug fixes
- Various bug fixes and performance improvements.
ARCore Extensions for AR Foundation v1.38.0
Known issues
- #1573: On certain Android devices, enabling 60FPS mode causes the tracking to become unsynchronized with the camera feed. The 60FPS mode has been temporarily disabled on these devices and will not appear in supported camera configurations.
Other changes
ARGeospatialCreatorOrigin
objects are now tagged with "EditorOnly" by default when added to the scene from an Editor menu, because they are only used by the Geospatial Creator in Editor mode.- Updated the asynchronous Geospatial and Cloud Anchor APIs to add resolved anchors to the scene upon completion of the promise, instead of when the promise's result is first accessed.
- When enabling the Geospatial Creator, the minimum version dependency for Cesium For Unity has been changed from 1.0.0 to 1.1.0, which fixes an iOS build issue. We recommend all Geospatial Creator users update to the latest Cesium version.
- Adjusted the Map Tiles API URL to match the recommended format. The old URL (without
.json
) will continue to work.
Bug fixes
- Changes to the Map Tiles API key in the
ARGeospatialCreatorOrigin
Inspector are added to the Unity Editor's undo stack, and mark the scene as modified.
ARCore Extensions for AR Foundation v1.37.0
Known issues
- #1573: On certain devices, enabling 60FPS mode causes the tracking to become unsynchronized with the camera feed. The 60FPS mode has been temporarily disabled on these devices and will not appear in supported camera configurations.
New APIs and capabilities
Geospatial Creator
Geospatial Creator helps you visualize where in the world you want to place your content and helps you place your 3D assets at that location in the Unity editor. Select a location to get the 3D geometry at that location, and fly through the space as you would on Google Earth, powered by the Google Maps Platform Map Tiles API. Then, anchor content to the scene using Geospatial anchors; no additional steps are needed for identifying latitude, longitude, elevation or rotation quaternion of the selected location anymore.
See Geospatial Creator in ARCore Extensions for Unity for more information.
Scene Semantics
Scene Semantics provides richer details about the surrounding scene, making it easier to understand the world around the user. Scene Semantics runs an ML model on the camera image feed and provides a semantic image with each pixel corresponding to one of 11 labels of outdoor concepts.
Scene Semantics is currently only available on the Android target platform.
See Introduction to Scene Semantics for more information.
Streetscape Geometry
Streetscape Geometry is a new ARCore Geospatial API that provides the geometry of buildings and terrain in an area around the user when the Geospatial API is enabled.
See Streetscape Geometry Developer Guide. Additionally, the Geospatial sample has been updated to include Streetscape Geometry.
ARStreetscapeGeometryManager
ARStreetscapeGeometry
ARRaycastManagerExtensions.RaycastStreetscapeGeometry()
Rooftop Anchors
Rooftop anchors are a new Geospatial anchor type that helps you anchor content to a rooftop.
See Geospatial anchors for more information. Additionally, the Geospatial sample has been updated to include Rooftop anchors.
ARAnchorManagerExtensions.ResolveAnchorOnRooftopAsync()
provides an anchor for game objects in your scene at the specified latitude, longitude, altitude above the rooftop, and orientation.ResolveAnchorOnRooftopPromise
ResolveAnchorOnRooftopResult
ARCore async APIs
This release introduces new ARCore async APIs to improve ergonomics when working with asynchronous operations, following the Promise paradigm.
- Resolving Terrain anchors: Use
ARAnchorManagerExtensions.ResolveAnchorOnTerrainAsync()
to obtain aResolveAnchorOnTerrainPromise
. The old symbolARAnchorManagerExtensions.ResolveAnchorOnTerrain()
has been deprecated and may be removed in a later version of ARCore. - Resolving Cloud anchors: Use
ARAnchorManagerExtensions.ResolveCloudAnchorAsync()
to obtain aResolveCloudAnchorPromise
. The old symbolARAnchorManagerExtensions.ResolveCloudAnchorId()
has been deprecated and may be removed in a later version of ARCore. - Hosting Cloud anchors: Use
ARAnchorManagerExtensions.HostCloudAnchorAsync()
to obtain aHostCloudAnchorPromise
. The oldARAnchorManagerExtensions.HostCloudAnchor()
symbols have been deprecated and may be removed in a later version of ARCore.
Deprecations
ARAnchorManagerExtensions.HostCloudAnchor(ARAnchor)
andARAnchorManagerExtensions.HostCloudAnchor(ARAnchor, int)
have been deprecated. UseARAnchorManagerExtensions.HostCloudAnchorAsync(ARAnchor, int)
instead.ARAnchorManagerExtensions.ResolveCloudAnchorId(string)
has been deprecated. UseARAnchorManagerExtensions.ResolveCloudAnchorAsync(string)
instead.CloudAnchorState.TaskInProgress
has been deprecated. When using async Cloud Anchor APIs, usePromiseState.Pending
instead.ARCloudAnchor.cloudAnchorId
has been deprecated. When using async hosting, useHostCloudAnchorResult.CloudAnchorId
instead.ARCloudAnchor.cloudAnchorState
has been deprecated. When using async hosting or resolving APIs, useHostCloudAnchorResult.CloudAnchorState
orResolveCloudAnchorResult.CloudAnchorState
instead.ARAnchorManagerExtensions.ResolveAnchorOnTerrain(double, double, double, Quaternion)
has been deprecated. UseARAnchorManagerExtensions.ResolveAnchorOnTerrainAsync(double, double, double, Quaternion)
instead.TerrainAnchorState.TaskInProgress
has been deprecated. When using the async API to resolve a terrain anchor, usePromiseState.Pending
instead.- [`ARGeospatialAnc...