Class XRAnchorSubsystem
Base class for a anchor subsystem.
Inheritance
Inherited Members
Namespace: UnityEngine.XR.ARSubsystems
Syntax
public abstract class XRAnchorSubsystem : TrackingSubsystem<XRAnchor, XRAnchorSubsystemDescriptor>, ISubsystem
Remarks
An anchor is a pose in the physical environment that is tracked by an XR device. As the device refines its understanding of the environment, anchors will be updated, allowing developers to keep virtual content connected to a real-world position and orientation.
This abstract class should be implemented by an XR provider and instantiated using the SubsystemManager
to enumerate the available XRAnchorSubsystemDescriptors.
Constructors
XRAnchorSubsystem()
Constructor. Do not invoke directly; use the SubsystemManager
to enumerate the available XRAnchorSubsystemDescriptors
and call Create
on the desired descriptor.
Declaration
public XRAnchorSubsystem()
Methods
CreateProvider()
Should return an instance of XRAnchorSubsystem.Provider.
Declaration
protected abstract XRAnchorSubsystem.Provider CreateProvider()
Returns
Type | Description |
---|---|
XRAnchorSubsystem.Provider | The interface to the implementation-specific provider. |
GetChanges(Allocator)
Get the changes (added, updated, and removed) anchors since the last call to GetChanges(Allocator).
Declaration
public override TrackableChanges<XRAnchor> GetChanges(Allocator allocator)
Parameters
Type | Name | Description |
---|---|---|
Allocator | allocator | An allocator to use for the |
Returns
Type | Description |
---|---|
TrackableChanges<XRAnchor> | Changes since the last call to GetChanges(Allocator). |
Overrides
OnDestroyed()
Destroys the subsystem.
Declaration
protected override sealed void OnDestroyed()
Overrides
OnStart()
Starts the subsystem.
Declaration
protected override sealed void OnStart()
Overrides
OnStop()
Stops the subsystem.
Declaration
protected override sealed void OnStop()
Overrides
TryAddAnchor(Pose, out XRAnchor)
Attempts to create a new anchor with the provide pose
.
Declaration
public bool TryAddAnchor(Pose pose, out XRAnchor anchor)
Parameters
Type | Name | Description |
---|---|---|
Pose | pose | The pose, in session space, of the new anchor. |
XRAnchor | anchor | The new anchor. Only valid if this method returns |
Returns
Type | Description |
---|---|
Boolean |
|
TryAttachAnchor(TrackableId, Pose, out XRAnchor)
Attempts to create a new anchor "attached" to the trackable with id trackableToAffix
.
The behavior of the anchor depends on the type of trackable to which this anchor is attached.
Declaration
public bool TryAttachAnchor(TrackableId trackableToAffix, Pose pose, out XRAnchor anchor)
Parameters
Type | Name | Description |
---|---|---|
TrackableId | trackableToAffix | The id of the trackable to which to attach. |
Pose | pose | The pose, in session space, of the anchor to create. |
XRAnchor | anchor | The new anchor. Only valid if this method returns |
Returns
Type | Description |
---|---|
Boolean |
|
TryRemoveAnchor(TrackableId)
Attempts to remove an existing anchor with TrackableId anchorId
.
Declaration
public bool TryRemoveAnchor(TrackableId anchorId)
Parameters
Type | Name | Description |
---|---|---|
TrackableId | anchorId | The id of an existing anchor to remove. |
Returns
Type | Description |
---|---|
Boolean |
|