ARCoreExtensions

Summary

Enumerations

CameraConfigDepthSensorUsage{
  RequireAndUse = 0x0001,
  DoNotUse = 0x0002
}
enum
Type of hardware depth sensor usage for a camera config, such as a time-of-flight (ToF) sensor.
CameraConfigFacingDirection{
  Back = 0,
  Front = 1
}
enum
Facing direction options for camera config.
CameraConfigStereoCameraUsage{
  RequireAndUse = 0x0001,
  DoNotUse = 0x0002
}
enum
Stereo Camera usage options.
CameraConfigTargetFps{
  Target30FPS = 0x0001,
  Target60FPS = 0x0002
}
enum
The camera frame rate filter for the currently selected camera.
CloudAnchorMode{
  Disabled = 0,
  Enabled = 1
}
enum
Describes the desired behavior of the ARCore Cloud Anchor API.
CloudAnchorState{
  None,
  TaskInProgress,
  Success,
  ErrorInternal,
  ErrorNotAuthorized,
  ErrorResourceExhausted,
  ErrorHostingDatasetProcessingFailed,
  ErrorResolvingCloudIdNotFound,
  ErrorResolvingPackageTooOld,
  ErrorResolvingPackageTooNew,
  ErrorHostingServiceUnavailable
}
enum
Result status of a Cloud Anchor hosting or resolving operation.
EarthState{
  Enabled = 0,
  ErrorInternal = -1,
  ErrorGeospatialModeDisabled = -2,
  ErrorNotAuthorized = -3,
  ErrorResourcesExhausted = -4,
  ErrorPackageTooOld = -5,
  ErrorEarthNotReady = -100,
  ErrorSessionNotReady = -101
}
enum
Describes the current state of Earth localization.
FeatureMapQuality{
  Insufficient = 0,
  Sufficient = 1,
  Good = 2
}
enum
Indicates the quality of feature points seen by ARCore in the preceding few seconds from a given camera Pose.
FeatureSupported{
  Supported,
  Unknown,
  Unsupported
}
enum
Indicates whether a feature or capability is supported on the device.
GeospatialMode{
  Disabled = 0,
  Enabled = 2
}
enum
Describes the desired behavior of the ARCore Geospatial API.
PlaybackResult{
  OK,
  SessionNotReady,
  ErrorSessionNotPaused,
  ErrorSessionUnsupported,
  ErrorPlaybackFailed
}
enum
Results from attempting to set playback dataset filepath.
PlaybackStatus{
  None,
  OK,
  IOError,
  FinishedSuccess
}
enum
Describes the current playback status.
PromiseState{
  Pending = 0,
  Cancelled = 1,
  Done = 2
}
enum
Describes state of an async operation.
RecordingResult{
  OK,
  SessionNotReady,
  ErrorInvalidArgument,
  ErrorRecordingFailed,
  ErrorIllegalState
}
enum
Results from recording methods.
RecordingStatus{
  None,
  OK,
  IOError
}
enum
Describes the current recording status.
RooftopAnchorState{
  None = 0,
  Success = 1,
  ErrorInternal = -1,
  ErrorNotAuthorized = -2,
  ErrorUnsupportedLocation = -3
}
enum
SemanticLabel{
  Unlabeled = 0,
  Sky = 1,
  Building = 2,
  Tree = 3,
  Road = 4,
  Sidewalk = 5,
  Terrain = 6,
  Structure = 7,
  Object = 8,
  Vehicle = 9,
  Person = 10,
  Water = 11
}
enum
Defines the labels the Scene Semantics API is able to detect and maps human-readable names to per-pixel semantic labels.
SemanticMode{
  Disabled = 0,
  Enabled = 1
}
enum
Describes the desired behavior of Scene Semantics.
StreetscapeGeometryMode{
  Disabled = 0,
  Enabled = 1
}
enum
Describes the desired behavior of the Geospatial Streetscape Geometry API.
StreetscapeGeometryQuality{
  None = 0,
  BuildingLOD1 = 1,
  BuildingLOD2 = 2
}
enum
Describes the quality of the mesh data.
StreetscapeGeometryType{
  Terrain = 0,
  Building = 1
}
enum
Describes the type of a Streetscape Geometry.
TerrainAnchorState{
  None = 0,
  TaskInProgress = 1,
  Success = 2,
  ErrorInternal = -1,
  ErrorNotAuthorized = -2,
  ErrorUnsupportedLocation = -3
}
enum
Describes the result of a Terrain anchor resolving operation.
VpsAvailability{
  Unknown = 0,
  Available = 1,
  Unavailable = 2,
  ErrorInternal = -1,
  ErrorNetworkConnection = -2,
  ErrorNotAuthorized = -3,
  ErrorResourceExhausted = -4
}
enum
Describes the result of checking VPS availability at specific location.

Classes

Google.XR.ARCoreExtensions.ARAnchorManagerExtensions

Extensions to AR Foundation's ARAnchorManager class.

Google.XR.ARCoreExtensions.ARCloudAnchor

The ARCloudAnchor is an ARCore Extensions object that provides a similar service to AR Foundation's ARAnchor as an anchor for game objects in your scene.

Google.XR.ARCoreExtensions.ARCoreExtensions

ARCore Extensions, this script allows an app to specify and provide access to AR Foundation object instances that should be used by ARCore Extensions.

Google.XR.ARCoreExtensions.ARCoreExtensionsCameraConfigFilter

The ARCoreExtensionsCameraConfigFilter class is used by the camera manager to derive a list of camera configurations available on the device at runtime.

Google.XR.ARCoreExtensions.ARCoreExtensionsConfig

Holds settings that are used to configure the ARCore Extensions.

Google.XR.ARCoreExtensions.ARCoreRecordingConfig

Configuration to record camera and sensor data from an ARCore session.

Google.XR.ARCoreExtensions.AREarthManager

Provides localization in Earth-relative coordinates.

Google.XR.ARCoreExtensions.ARGeospatialAnchor

The ARGeospatialAnchor is an ARCore Extensions object that provides a similar service to AR Foundation's ARAnchor as an anchor for game objects in your scene.

Google.XR.ARCoreExtensions.ARPlaybackManager

Provides access to session playback functionality.

Google.XR.ARCoreExtensions.ARRaycastManagerExtensions

Extensions to AR Foundation's ARRaycastManager class.

Google.XR.ARCoreExtensions.ARRecordingManager

Provides access to session recording functionality.

Google.XR.ARCoreExtensions.ARSemanticManager

Provides access to the Scene Semantics API.

Google.XR.ARCoreExtensions.ARStreetscapeGeometry

Defines geometry such as terrain, buildings, or other structures obtained from the Streetscape Geometry API.

Google.XR.ARCoreExtensions.ARStreetscapeGeometryManager

Provides ARCore Geospatial Streetscape Geometry APIs.

Google.XR.ARCoreExtensions.HostCloudAnchorPromise

An InterruptiblePromise launched by ARAnchorManagerExtensions.HostCloudAnchorAsync(this ARAnchorManager, ARAnchor, int) with result type HostCloudAnchorResult.

Google.XR.ARCoreExtensions.HostCloudAnchorResult

Result object from HostCloudAnchorPromise containing the hosted Cloud Anchor ID and final state.

Google.XR.ARCoreExtensions.ResolveAnchorOnRooftopPromise

An InterruptiblePromise launched by ARAnchorManagerExtensions.ResolveAnchorOnRooftopAsync(this ARAnchorManager, double, double, double, UnityEngine.Quaternion) with result type ResolveAnchorOnRooftopResult.

Google.XR.ARCoreExtensions.ResolveAnchorOnRooftopResult

Contains the result of a ResolveAnchorOnRooftopPromise.

Google.XR.ARCoreExtensions.ResolveAnchorOnTerrainPromise

An InterruptiblePromise launched by ARAnchorManagerExtensions.ResolveAnchorOnTerrainAsync(this ARAnchorManager, double, double, double, UnityEngine.Quaternion) with result type ResolveAnchorOnTerrainResult.

Google.XR.ARCoreExtensions.ResolveAnchorOnTerrainResult

Contains the result of a ResolveAnchorOnTerrainPromise.

Google.XR.ARCoreExtensions.ResolveCloudAnchorPromise

An InterruptiblePromise launched by ARAnchorManagerExtensions.ResolveCloudAnchorAsync(this ARAnchorManager, string) with result type ResolveCloudAnchorResult.

Google.XR.ARCoreExtensions.ResolveCloudAnchorResult

Result object from ResolveCloudAnchorPromise containing the resolved Cloud Anchor and Anchor state.

Google.XR.ARCoreExtensions.VersionInfo

Provides access to information about the current ARCore Extensions package runtime.

Google.XR.ARCoreExtensions.VpsAvailabilityPromise

An InterruptiblePromise launched by AREarthManager.CheckVpsAvailabilityAsync(double, double) with result type VpsAvailability.

Google.XR.ARCoreExtensions.XRCameraConfigurationExtensions

Extensions to AR Subsystem's XRCameraConfiguration struct.

Google.XR.ARCoreExtensions.XRCameraFrameExtensions

Extensions to AR Subsystem's XRCameraFrame struct.

Structs

Google.XR.ARCoreExtensions.ARStreetscapeGeometriesChangedEventArgs

Event arguments for the ARStreetscapeGeometryManager.StreetscapeGeometriesChanged event.

Google.XR.ARCoreExtensions.GeospatialPose

Describes a specific location, elevation, and compass heading relative to Earth.

Google.XR.ARCoreExtensions.Track

Definition of a track to record on.

Google.XR.ARCoreExtensions.TrackData

Data that was recorded to an external Track.

Namespaces

Google.XR.ARCoreExtensions.GeospatialCreator
Google.XR.ARCoreExtensions.Internal

Enumerations

CameraConfigDepthSensorUsage

 CameraConfigDepthSensorUsage

Type of hardware depth sensor usage for a camera config, such as a time-of-flight (ToF) sensor.

Properties
DoNotUse

Indicates that ARCore will not attempt to use a hardware depth sensor, such as a time-of-flight sensor (or ToF sensor), even if it is present.

Most commonly used to filter camera configurations when the app requires exclusive access to the hardware depth sensor outside of ARCore, for example to support 3D mesh reconstruction. Available on all ARCore supported devices.

RequireAndUse

Indicates that a hardware depth sensor, such as a time-of-flight sensor (or ToF sensor), must be present on the device, and the hardware depth sensor will be used by ARCore.

Not supported on all devices.

CameraConfigFacingDirection

 CameraConfigFacingDirection

Facing direction options for camera config.

Properties
Back

Back-facing (world) camera is enabled.

Available on all ARCore supported devices.

Front

Front-facing (selfie) camera is enabled.

See ARCore supported devices for available camera configs by device.

To limit distribution of your app to only devices that have a front-facing camera, use uses-feature with android.hardware.camera.

CameraConfigStereoCameraUsage

 CameraConfigStereoCameraUsage

Stereo Camera usage options.

Properties
DoNotUse

ARCore will not attempt to use a stereo camera, even if one is present.

Valid on all ARCore supported devices.

RequireAndUse

A stereo camera is present on the device and will be used by ARCore.

Not available on all ARCore supported devices.

CameraConfigTargetFps

 CameraConfigTargetFps

The camera frame rate filter for the currently selected camera.

Properties
Target30FPS

Target 30fps camera capture frame rate.

Available on all ARCore supported devices.

Target60FPS

Target 60fps camera capture frame rate.

Increases power consumption and may increase app memory usage.

See the ARCore supported devices page for a list of devices that currently support 60fps.

CloudAnchorMode

 CloudAnchorMode

Describes the desired behavior of the ARCore Cloud Anchor API.

The Cloud Anchors API uses feature maps to persist an anchor throughout sessions and across devices. See the Cloud Anchors developer guide for more information.

The default value is CloudAnchorMode.Disabled. Use ARCoreExtensionsConfig.CloudAnchorMode to set the desired mode.

Properties
Disabled

The Cloud Anchor API is disabled.

Calling ARAnchorManagerExtensions.HostCloudAnchorAsync(this ARAnchorManager, ARAnchor, int) and ARAnchorManagerExtensions.ResolveCloudAnchorAsync(this ARAnchorManager, string) will cause the promise to fail immediately.

This is the default value.

Enabled

The Cloud Anchor API is enabled.

ARAnchorManagerExtensions.HostCloudAnchorAsync(this ARAnchorManager, ARAnchor, int) and ARAnchorManagerExtensions.ResolveCloudAnchorAsync(this ARAnchorManager, string) can be used to host and resolve Cloud Anchors.

Using this mode requires your app to do the following:

Use ARCoreExtensionsConfig.CloudAnchorMode to set this mode.

CloudAnchorState

 CloudAnchorState

Result status of a Cloud Anchor hosting or resolving operation.

Properties
ErrorHostingDatasetProcessingFailed

Hosting failed because the server could not successfully process the dataset for the given Cloud Anchor.

The developer should try again after the devices has gathered more data from the environment.

ErrorHostingServiceUnavailable

The ARCore API was unreachable.

This can happen because of a number of reasons. The device may be in airplane mode or does not have a working internet connection. The request sent to the server could have timed out with no response, there could be a bad network connection, DNS unavailability, firewall issues, or anything that could affect the device's ability to connect to the ARCore API.

ErrorInternal

A hosting or resolving task for this Cloud Anchor has completed with an internal error.

The app should not attempt to recover from this error.

ErrorNotAuthorized

The app cannot communicate with the ARCore API because of an invalid authentication.

Check Project Settings > XR Plug-in Management > ARCore Extensions for a valid authentication strategy.

ErrorResolvingCloudIdNotFound

Resolving failed because the ARCore API could not find the provided Cloud Anchor Id.

ErrorResolvingPackageTooNew

The Cloud Anchor could not be acquired because the ARCore Extensions package used to host the Cloud Anchor was older than and incompatible with the version being used to acquire it.

ErrorResolvingPackageTooOld

The Cloud Anchor could not be resolved because the ARCore Extensions package used to host the Cloud Anchor was newer than and incompatible with the version being used to acquire it.

ErrorResourceExhausted

The application has exhausted the request quota alloted to the given API key.

The developer should request additional quota for the ARCore API for their API key from the Google Cloud Developers Console.

None

Not a valid value for a Cloud Anchor hosting or resolving operation.

Success

A hosting or resolving task for this Cloud Anchor has completed successfully.

TaskInProgress

A hosting or resolving task is in progress for this Cloud Anchor.

Once the task completes in the background, the Cloud Anchor will get a new state after the next update.

Deprecated. Not returned by async methods - replaced by PromiseState.Pending.

EarthState

 EarthState

Describes the current state of Earth localization.

When AREarthManager.EarthTrackingState does not become UnityEngine.XR.ARSubsystems.TrackingState.Tracking, EarthState may contain the cause of this failure.

Properties
Enabled

Earth localization is enabled, and has not encountered any problems.

Check AREarthManager.EarthTrackingState to determine if the Geospatial API can be used.

ErrorEarthNotReady

Failed to acquire Earth.

This is returned when the current session is initializing Geospatial functionalities. This state should not be active for more than a few frames.

ErrorGeospatialModeDisabled

Earth localization has been disabled on this session.

All ARGeospatialAnchor created during this session will have UnityEngine.XR.ARSubsystems.XRCpuImage set to UnityEngine.XR.ARSubsystems.TrackingState.None and should be destroyed.

ErrorInternal

Earth localization has encountered an internal error.

The app should not attempt to recover from this error. Please see application logs for additional information.

ErrorNotAuthorized

The authorization provided by the application is not valid.

  • The Google Cloud project may not have enabled the ARCore API.
  • When using API key authentication, this will happen if the API key in the manifest is invalid, unauthorized. It may also fail if the API key is restricted to a set of apps not including the current one.
  • When using keyless authentication, this may happen when no OAuth client has been created, or when the signing key and package name combination does not match the values used in the Google Cloud project. On Android, it may also fail if Google Play Services isn't installed, is too old, or is malfunctioning for some reason (e.g. killed due to memory pressure).

ErrorPackageTooOld

The package is older than the supported version.

ErrorResourcesExhausted

The application has exhausted the quota allotted to the given Google Cloud project.

The developer should request additional quota for the ARCore API for their project from the Google Cloud Console.

ErrorSessionNotReady

Failed to find a valid ARCore session.

This is returned when the session is not active or not fully initialized, see UnityEngine.XR.ARFoundation.ARSession.state for details on the state of the session.

FeatureMapQuality

 FeatureMapQuality

Indicates the quality of feature points seen by ARCore in the preceding few seconds from a given camera Pose.

A higher quality indicates that a Cloud Anchor hosted at the current time, with the current set of recently seen feature points, is generally easier to resolve more accurately. See the Cloud Anchors developer guide for more information.

Properties
Good

The quality of feature points seen from the pose in the preceding few seconds is likely sufficient for ARCore to successfully resolve a Cloud Anchor with a high degree of accuracy.

Insufficient

The quality of feature points seen from the pose in the preceding few seconds is low.

This state indicates that ARCore will likely have more difficulty resolving the Cloud Anchor. Encourage the user to move the device, so that the desired position of the Cloud Anchor to be hosted is seen from different angles.

Sufficient

The quality of feature points seen from the pose in the preceding few seconds is likely sufficient for ARCore to successfully resolve a Cloud Anchor, although the accuracy of the resolved pose will likely be reduced.

Encourage the user to move the device, so that the desired position of the Cloud Anchor to be hosted is seen from different angles.

FeatureSupported

 FeatureSupported

Indicates whether a feature or capability is supported on the device.

Properties
Supported

The feature or capability is supported.

Unknown

Support is unknown.

This could be because support is still being determined.

Unsupported

The feature or capability is not supported.

GeospatialMode

 GeospatialMode

Describes the desired behavior of the ARCore Geospatial API.

The Geospatial API uses a combination of Google's Visual Positioning System (VPS) and GPS to determine the geospatial pose.

The Geospatial API is able to provide the best user experience when it is able to generate high accuracy poses. However, the Geospatial API can be used anywhere, as long as the device is able to determine its location, even if the available location information has low accuracy.

  • In areas with VPS coverage, the Geospatial API is able to generate high accuracy poses. This can work even where GPS accuracy is low, such as dense urban environments. Under typical conditions, VPS can be expected to provide positional accuracy typically better than 5 meters and often around 1 meter, and a rotational accuracy of better than 5 degrees. Use AREarthManager.CheckVpsAvailabilityAsync(double, double) to determine if a given location has VPS coverage.
  • In outdoor environments with few or no overhead obstructions, GPS may be sufficient to generate high accuracy poses. GPS accuracy may be low in dense urban environments and indoors.

A small number of ARCore supported devices do not support the Geospatial API. Use AREarthManager.IsGeospatialModeSupported(GeospatialMode) to determine if the current device is supported. Affected devices are also indicated on the ARCore supported devices page.

When the Geospatial API and the Depth API are enabled, output images from the Depth API will include terrain and building geometry when in a location with VPS coverage. See the Geospatial Depth Developer Guide for more information.

The default value is GeospatialMode.Disabled. Use ARCoreExtensionsConfig.GeospatialMode to set the desired mode.

Properties
Disabled

The Geospatial API is disabled.

When a configuration with Disabled becomes active on the AR session, current anchors created from ARAnchorManagerExtensions.AddAnchor( UnityEngine.XR.ARFoundation.ARAnchorManager, double, double, double, UnityEngine.Quaternion) will stop updating and have their UnityEngine.XR.ARSubsystems.TrackingState set to UnityEngine.XR.ARSubsystems.TrackingState.None.

ARCore Extensions will not request location permissions.

Enabled

The Geospatial API is enabled, and AREarthManager can be used.

Using this mode requires your app do the following:

Location is tracked only while ARSession is enabled. While it is disabled, AREarthManager.EarthTrackingState will be UnityEngine.XR.ARSubsystems.TrackingState.None.

For more information, see documentation on the Geospatial API on Google Developers.

This mode is not compatible with the CameraFacingDirection.User (selfie) camera; use the CameraFacingDirection.World camera instead.

Not all devices support this mode, use AREarthManager.IsGeospatialModeSupported(GeospatialMode) to check if the current device and selected camera support enabling this mode.

When the Geospatial API and the Depth API are enabled, output images from the Depth API will include terrain and building geometry when in a location with VPS coverage. See the Geospatial Depth Developer Guide for more information.

PlaybackResult

 PlaybackResult

Results from attempting to set playback dataset filepath.

Properties
ErrorPlaybackFailed

Playback failed.

ErrorSessionNotPaused

The session was not paused when setting the playback dataset.

ErrorSessionUnsupported

Operation is unsupported with the current session.

OK

The request completed successfully.

SessionNotReady

The call to ARPlaybackManager.SetPlaybackDataset(string) failed because ARCore is currently attempting to resume or pause the session.

Try calling it again in the next frame. Note:

  • Resuming session may require several frames to complete.
  • Pausing session may take up to 10 seconds to pause.

PlaybackStatus

 PlaybackStatus

Describes the current playback status.

Properties
FinishedSuccess

Playback has finished successfully.

The session is waiting on the final frame of the dataset. To resume a live camera feed or play another dataset, pause the session, call ARPlaybackManager.SetPlaybackDataset(string), and resume the session.

IOError

Playback has stopped due to an error.

None

The session is not playing back a dataset.

OK

Playback is in process without issues.

PromiseState

 PromiseState

Describes state of an async operation.

Properties
Cancelled

The operation has been cancelled.

Done

The operation is completed and the result is available.

Pending

The operation is still pending.

It may still be possible to cancel the operation. The result of the operation isn't available yet.

RecordingResult

 RecordingResult

Results from recording methods.

Properties
ErrorIllegalState

When using ARRecordingManager.StartRecording(ARCoreRecordingConfig), this means a recording is already in progress.

When using ARRecordingManager.RecordTrackData(Guid, byte[]), this means either RecordingStatus is not currently RecordingStatus.OK or the system is currently under excess load for images to be produced. The system should not be under such excess load for more than a few frames and an app should try to record the data again during the next frame.

ErrorInvalidArgument

When using ARRecordingManager.StartRecording(ARCoreRecordingConfig), this means the ARCoreRecordingConfig was null or invalid.

When using ARRecordingManager.RecordTrackData(Guid, byte[]), this means the track id or payload given are null or invalid.

ErrorRecordingFailed

IO or other general failure.

OK

The request completed successfully.

SessionNotReady

The call to ARRecordingManager.StartRecording(ARCoreRecordingConfig) failed because ARCore is currently attempting to resume or pause the session.

Try calling it again in the next frame. Note:

  • Resuming session may require several frames to complete.
  • Pausing session may take up to 10 seconds to pause.

RecordingStatus

 RecordingStatus

Describes the current recording status.

Properties
IOError

There was an IO error while recording.

None

The recorder is not recording.

OK

The recorder is recording normally.

RooftopAnchorState

 RooftopAnchorState

Describes the Rooftop anchor state of an synchronous operation launched by ARAnchorManagerExtensions.ResolveAnchorOnRooftopAsync(this ARAnchorManager, double, double, double, UnityEngine.Quaternion).

Obttained by ResolveAnchorOnRooftopResult.RooftopAnchorState.

Properties
ErrorInternal

A resolving task for this Rooftop anchor has completed with an internal error.

The app should not attempt to recover from this error.

ErrorNotAuthorized

The app cannot communicate with the ARCore Cloud because of an invalid authentication.

Check Project Settings > XR Plug-in Management > ARCore Extensions for a valid authentication strategy.

ErrorUnsupportedLocation

There is no rooftop or terrain information at this location, such as the center of the ocean.

None

Not a valid value for a Rooftop anchor operation.

Success

A resolving task for this Rooftop anchor has completed successfully.

SemanticLabel

 SemanticLabel

Defines the labels the Scene Semantics API is able to detect and maps human-readable names to per-pixel semantic labels.

See the Scene Semantics Developer Guide for more information.

Use ARSemanticManager.TryGetSemanticTexture(ref Texture2D) to obtain an image containing these pixels and ARSemanticManager.TryGetSemanticConfidenceTexture(ref Texture2D), and ARSemanticManager.GetSemanticLabelFraction(SemanticLabel) to query what percentage of the image contains these pixels.

Properties
Building

Pixels of buildings, including houses, garages, etc.

Includes all structures attached to the building, such as signs, solar panels, scaffolding, etc.

Object

Pixels of general temporary and permanent objects and obstacles, including street signs, traffic signs, free-standing business signs, billboards, poles, mailboxes, fire hydrants, street lights, phone booths, bus stop enclosures, cones, parking meters, animals, etc.

Person

Pixels of humans, including pedestrians and bicycle/motorcycle riders.

Road

Pixels of drivable surfaces for vehicles, including paved, unpaved, dirt, driveways, crosswalks, etc.

Sidewalk

Pixels of sidewalks for pedestrians and cyclists, including associated curbs.

Sky

Pixels of the open sky, including clouds.

Thin electrical wires in front of the sky are included, but leaves/vegetation are not included.

Structure

Pixels of structures that are not buildings, including fences, guardrails, stand-alone walls, tunnels, bridges, etc.

Terrain

Pixels of walkable vegetation areas, including grass, soil, sand, mountains, etc.

In contrast, 'tree' specifies non-walkable vegetation, like trees and bushes.

Tree

Pixels of non-walkable vegetation, like trees and shrubs.

In contrast, 'terrain' specifies walkable vegetation, like grass.

Unlabeled

Pixels with no semantic label available in the API output.

Vehicle

Pixels of vehicles, including cars, vans, buses, trucks, motorcycles, bicycles, trains, etc.

Water

Pixels of ground surfaces covered by water, including lakes, rivers, etc.

SemanticMode

 SemanticMode

Describes the desired behavior of Scene Semantics.

Scene Semantics uses a machine learning model to label each pixel from the camera feed with a SemanticLabel. See the Scene Semantics Developer Guide for more information.

The Scene Semantics API is currently able to distinguish between outdoor labels specified by SemanticLabel. Usage indoors is currently unsupported and may yield unreliable results.

A small number of ARCore supported devices do not support the Scene Semantics API. Use ARSemanticManager.IsSemanticModeSupported(SemanticMode) to query for support for Scene Semantics. Affected devices are also indicated on the ARCore supported devices page.

The default value is SemanticMode.Disabled.

Properties
Disabled

The Scene Semantics API is disabled.

Calls to ARSemanticManager.TryGetSemanticTexture(ref Texture2D), ARSemanticManager.TryGetSemanticConfidenceTexture(ref Texture2D), and ARSemanticManager.GetSemanticLabelFraction(SemanticLabel) will not return valid results.

This is the default mode.

Enabled

The Scene Semantics API is enabled.

Calls to ARSemanticManager.TryGetSemanticTexture(ref Texture2D), ARSemanticManager.TryGetSemanticConfidenceTexture(ref Texture2D), and ARSemanticManager.GetSemanticLabelFraction(SemanticLabel) will return valid results.

StreetscapeGeometryMode

 StreetscapeGeometryMode

Describes the desired behavior of the Geospatial Streetscape Geometry API.

The Streetscape Geometry API provides polygon meshes of terrain, buildings, and other structures in a radius surrounding the device. See the Streetscape Geometry Developer Guide for additional information.

When Streetscape Geometry is enabled, ARStreetscapeGeometryManager can be used.

The Streetscape Geometry API requires both StreetscapeGeometryMode to be set to StreetscapeGeometryMode.Enabled and GeospatialMode to be set to GeospatialMode.Enabled.

The default value is StreetscapeGeometryMode.Disabled. Use ARCoreExtensionsConfig.StreetscapeGeometryMode to set the desired mode.

Properties
Disabled

The Streetscape Geometry API is disabled.

This is the default mode.

Enabled

The Streetscape Geometry API is enabled.

ARStreetscapeGeometryManager can be used.

Use ARCoreExtensionsConfig.StreetscapeGeometryMode to set this mode.

StreetscapeGeometryQuality

 StreetscapeGeometryQuality

Describes the quality of the mesh data.

The values correspond to the levels of detail (LOD) defined by the CityGML 2.0 standard.

Obtained by ARStreetscapeGeometry.quality.

Properties
BuildingLOD1

The StreetscapeGeometryType.Building geometry is the building footprint extruded up to a single flat top.

The building contains empty space above any angled roofs.

BuildingLOD2

The StreetscapeGeometryType.Building geometry is the building footprint with rough heightmap.

The geometry will closely follow simple angled roofs. Chimneys and roof vents on top of roofs will poke outside of the mesh.

None

The quality of the geometry is not defined, e.g.

when the StreetscapeGeometryType is StreetscapeGeometryType.Terrain.

StreetscapeGeometryType

 StreetscapeGeometryType

Describes the type of a Streetscape Geometry.

Obtained by ARStreetscapeGeometry.streetscapeGeometryType.

Properties
Building

This geometry represents a building.

Terrain

This geometry represents the ground or floor.

TerrainAnchorState

 TerrainAnchorState

Describes the result of a Terrain anchor resolving operation.

Properties
ErrorInternal

A resolving task for this Terrain anchor has completed with an internal error.

The app should not attempt to recover from this error.

ErrorNotAuthorized

The app cannot communicate with the ARCore Cloud because of an invalid authentication.

Check Project Settings > XR Plug-in Management > ARCore Extensions for a valid authentication strategy.

ErrorUnsupportedLocation

There is no terrain info at this location, such as the center of the ocean.

None

Not a valid value for a Terrain anchor operation.

Success

A resolving task for this Terrain anchor has completed successfully.

TaskInProgress

A resolving task is in progress for this Terrain anchor.

Once the task completes in the background, the Terrain anchor will get a new state after the next update.

Deprecated. Not returned by async methods. Replaced by PromiseState.Pending.

VpsAvailability

 VpsAvailability

Describes the result of checking VPS availability at specific location.

Properties
Available

VPS is available at the requested location.

ErrorInternal

An internal error occurred while determining availability.

ErrorNetworkConnection

The external service could not be reached due to a network connection error.

ErrorNotAuthorized

An authorization error occurred when communicating with the Google Cloud ARCore API.

See Enable the Geospatial API for troubleshooting steps.

ErrorResourceExhausted

Too many requests were sent.

Unavailable

VPS is not available at the requested location.

Unknown

The request to the remote service is not yet completed, so the availability is not yet known, or the AR Subsystem is not ready yet.