Class XRImageTrackingSubsystem
A subsystem for detecting and tracking a preconfigured set of images in the environment.
Inheritance
Inherited Members
Namespace: UnityEngine.XR.ARSubsystems
Syntax
public abstract class XRImageTrackingSubsystem : TrackingSubsystem<XRTrackedImage, XRImageTrackingSubsystemDescriptor>, ISubsystem
Constructors
XRImageTrackingSubsystem()
Constructs a subsystem. Do not invoked directly; call Create
on the XRImageTrackingSubsystemDescriptor instead.
Declaration
public XRImageTrackingSubsystem()
Properties
currentMaxNumberOfMovingImages
The current maximum number of moving images to track. This may be different from requestedMaxNumberOfMovingImages.
Declaration
public int currentMaxNumberOfMovingImages { get; }
Property Value
Type | Description |
---|---|
Int32 |
imageLibrary
Get or set the reference image library. This is the set of images to look for in the environment.
Declaration
public RuntimeReferenceImageLibrary imageLibrary { get; set; }
Property Value
Type | Description |
---|---|
RuntimeReferenceImageLibrary |
Remarks
A RuntimeReferenceImageLibrary is created at runtime and may be modifiable (see MutableRuntimeReferenceImageLibrary). A RuntimeReferenceImageLibrary may be created from an XRReferenceImageLibrary using CreateRuntimeLibrary(XRReferenceImageLibrary).
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown if the subsystem has been started, and you attempt to set the image library to null. |
See Also
requestedMaxNumberOfMovingImages
The requested maximum number of moving images to track.
Declaration
public int requestedMaxNumberOfMovingImages { get; set; }
Property Value
Type | Description |
---|---|
Int32 |
Exceptions
Type | Condition |
---|---|
NotSupportedException | Thrown if the subsystem does not support tracking moving images. Check for support of this feature with supportsMovingImages. |
Methods
CreateProvider()
Create an implementation of the XRImageTrackingSubsystem.Provider class. This will only be called once.
Declaration
protected abstract XRImageTrackingSubsystem.Provider CreateProvider()
Returns
Type | Description |
---|---|
XRImageTrackingSubsystem.Provider | An instance of the XRImageTrackingSubsystem.Provider interface. |
CreateRuntimeLibrary(XRReferenceImageLibrary)
Creates a RuntimeReferenceImageLibrary from an existing XRReferenceImageLibrary
or an empty library if serializedLibrary
is null
.
Use this to construct the runtime representation of an XRReferenceImageLibrary.
Declaration
public RuntimeReferenceImageLibrary CreateRuntimeLibrary(XRReferenceImageLibrary serializedLibrary)
Parameters
Type | Name | Description |
---|---|---|
XRReferenceImageLibrary | serializedLibrary | An existing XRReferenceImageLibrary created at edit time, or |
Returns
Type | Description |
---|---|
RuntimeReferenceImageLibrary | A new RuntimeReferenceImageLibrary representing the deserialized version of |
Remarks
If the subsystem supports runtime mutable libraries (see supportsMutableLibrary), then the returned library will be a MutableRuntimeReferenceImageLibrary.
See Also
GetChanges(Allocator)
Retrieve the changes in the state of tracked images (added, updated, removed) since the last call to GetChanges
.
Declaration
public override TrackableChanges<XRTrackedImage> GetChanges(Allocator allocator)
Parameters
Type | Name | Description |
---|---|---|
Allocator | allocator | The allocator to use for the returned set of changes. |
Returns
Type | Description |
---|---|
TrackableChanges<XRTrackedImage> | The set of tracked image changes (added, updated, removed) since the last call to this method. |
Overrides
OnDestroyed()
Destroys the subsystem.
Declaration
protected override sealed void OnDestroyed()
Overrides
OnStart()
Starts the subsystem, that is, start detecting images in the scene. imageLibrary must not be null.
Declaration
protected override void OnStart()
Overrides
Exceptions
Type | Condition |
---|---|
InvalidOperationException | Thrown if imageLibrary is null. |
OnStop()
Stops the subsystem, that is, stops detecting and tracking images.
Declaration
protected override sealed void OnStop()