Class XRFaceSubsystem
An abstract class that provides a generic API for low-level face tracking features.
Inheritance
Inherited Members
Namespace: UnityEngine.XR.ARSubsystems
Syntax
public abstract class XRFaceSubsystem : TrackingSubsystem<XRFace, XRFaceSubsystemDescriptor>, ISubsystem
Remarks
This class can be used to access face tracking features in your app via accessing the generic API. It can also be extended to provide an implementation of a provider which provides the face tracking data to the higher level code.
Constructors
XRFaceSubsystem()
Constructs a face subsystem. Do not invoked directly; call Create
on the XRFaceSubsystemDescriptor instead.
Declaration
public XRFaceSubsystem()
Properties
currentMaximumFaceCount
Get the maximum number of faces the provider will simultaneously track.
Declaration
public int currentMaximumFaceCount { get; }
Property Value
Type | Description |
---|---|
Int32 |
requestedMaximumFaceCount
Get or set the maximum number of faces to track simultaneously.
Declaration
public int requestedMaximumFaceCount { get; set; }
Property Value
Type | Description |
---|---|
Int32 |
Exceptions
Type | Condition |
---|---|
ArgumentOutOfRangeException | Thrown if the requested maximum face count is less than one. To stop face tracking, call Stop(). |
NotSupportedException | Thrown if the requested maximum face count is greater than one but the subsystem does not support tracking multiple faces. |
supportedFaceCount
Get the number of faces the subsystem is able to track simultaneously in its current configuration.
Declaration
public int supportedFaceCount { get; }
Property Value
Type | Description |
---|---|
Int32 |
Methods
CreateProvider()
Creates an instance of an implementation-specific XRFaceSubsystem.Provider.
Declaration
protected abstract XRFaceSubsystem.Provider CreateProvider()
Returns
Type | Description |
---|---|
XRFaceSubsystem.Provider | An implementation of the XRFaceSubsystem.Provider class. |
GetChanges(Allocator)
Get the changes (added, updated, and removed) faces since the last call to GetChanges(Allocator).
Declaration
public override TrackableChanges<XRFace> GetChanges(Allocator allocator)
Parameters
Type | Name | Description |
---|---|---|
Allocator | allocator | An |
Returns
Type | Description |
---|---|
TrackableChanges<XRFace> | TrackableChanges<T> describing the faces that have been added, updated, and removed
since the last call to GetChanges(Allocator). The caller owns the memory allocated with |
Overrides
GetFaceMesh(TrackableId, Allocator, ref XRFaceMesh)
Get the mesh data associated with the face with faceId
. The faceMesh
is reused if it is the correct size, otherwise, it is disposed and reallocated using allocator
.
Declaration
public virtual void GetFaceMesh(TrackableId faceId, Allocator allocator, ref XRFaceMesh faceMesh)
Parameters
Type | Name | Description |
---|---|---|
TrackableId | faceId | The TrackableId for a XRFace. |
Allocator | allocator | The allocator to use for the returned data if a resize is necessary. Must be |
XRFaceMesh | faceMesh | The container for the mesh data to either re-use or re-allocate. |
Exceptions
Type | Condition |
---|---|
InvalidOperationException | Thrown if |
InvalidOperationException | Thrown if |
OnDestroyed()
Destroy the face subsystem.
Declaration
protected override sealed void OnDestroyed()
Overrides
OnStart()
Start the face subsystem, i.e., start tracking faces.
Declaration
protected override sealed void OnStart()
Overrides
OnStop()
Stop the subsystem, i.e., stop tracking faces.
Declaration
protected override sealed void OnStop()