Class XRHumanBodySubsystem
Defines an interface for interacting with human body functionality.
Inheritance
Inherited Members
Namespace: UnityEngine.XR.ARSubsystems
Syntax
public abstract class XRHumanBodySubsystem : TrackingSubsystem<XRHumanBody, XRHumanBodySubsystemDescriptor>
Constructors
XRHumanBodySubsystem()
Construct the subsystem by creating the functionality provider.
Declaration
public XRHumanBodySubsystem()
Properties
humanBodyPose2DEstimationEnabled
Whether 2D human body pose estimation is enabled.
Declaration
public bool humanBodyPose2DEstimationEnabled { get; set; }
Property Value
Type | Description |
---|---|
Boolean |
|
humanBodyPose3DEstimationEnabled
Whether 3D human body pose estimation is enabled.
Declaration
public bool humanBodyPose3DEstimationEnabled { get; set; }
Property Value
Type | Description |
---|---|
Boolean |
|
humanBodyPose3DScaleEstimationEnabled
Whether 3D human body scale estimation is enabled.
Declaration
public bool humanBodyPose3DScaleEstimationEnabled { get; set; }
Property Value
Type | Description |
---|---|
Boolean |
|
humanSegmentationDepthMode
Specifies the human segmentation depth mode.
Declaration
public HumanSegmentationMode humanSegmentationDepthMode { get; set; }
Property Value
Type | Description |
---|---|
HumanSegmentationMode | The human segmentation depth mode. |
Exceptions
Type | Condition |
---|---|
NotSupportedException | Thrown when setting the human segmentation depth mode to enabled if the implementation does not support human segmentation. |
humanSegmentationStencilMode
Specifies the human segmentation stencil mode.
Declaration
public HumanSegmentationMode humanSegmentationStencilMode { get; set; }
Property Value
Type | Description |
---|---|
HumanSegmentationMode | The human segmentation stencil mode. |
Exceptions
Type | Condition |
---|---|
NotSupportedException | Thrown when setting the human segmentation stencil mode to enabled if the implementation does not support human segmentation. |
Methods
CreateProvider()
Create the implementation specific functionality provider.
Declaration
protected abstract XRHumanBodySubsystem.IProvider CreateProvider()
Returns
Type | Description |
---|---|
XRHumanBodySubsystem.IProvider | The implementation specific functionality provider. |
Destroy()
Destroy the subsystem by desstroying the provider.
Declaration
public override sealed void Destroy()
GetChanges(Allocator)
Query the provider for the trackable changes.
Declaration
public override TrackableChanges<XRHumanBody> GetChanges(Allocator allocator)
Parameters
Type | Name | Description |
---|---|---|
Allocator | allocator | The memory allocator to use for allocating the arrays. |
Returns
Type | Description |
---|---|
TrackableChanges<XRHumanBody> | The trackable human body changes. |
Overrides
GetHumanBodyPose2DJoints(Allocator)
Gets the human body pose 2D joints for the current frame.
Declaration
public NativeArray<XRHumanBodyPose2DJoint> GetHumanBodyPose2DJoints(Allocator allocator)
Parameters
Type | Name | Description |
---|---|---|
Allocator | allocator | The allocator to use for the returned array memory. |
Returns
Type | Description |
---|---|
NativeArray<XRHumanBodyPose2DJoint> | The array of body pose 2D joints. |
Remarks
The returned array may be empty if the system is not enabled for human body pose 2D or if the system does not detect a human in the camera image.
Exceptions
Type | Condition |
---|---|
NotSupportedException | Thrown if the implementation does not support human body pose 2D. |
GetSkeleton(TrackableId, Allocator, ref NativeArray<XRHumanBodyJoint>)
Query the provider for the skeleton joints for the requested trackable identifier.
Declaration
public void GetSkeleton(TrackableId trackableId, Allocator allocator, ref NativeArray<XRHumanBodyJoint> skeleton)
Parameters
Type | Name | Description |
---|---|---|
TrackableId | trackableId | The human body trackable identifier for which to query. |
Allocator | allocator | The memory allocator to use for the returned arrays. |
NativeArray<XRHumanBodyJoint> | skeleton | The array of skeleton joints to update and returns. |
Register(XRHumanBodySubsystemCinfo)
Register the descriptor for the human body subsystem implementation.
Declaration
public static bool Register(XRHumanBodySubsystemCinfo humanBodySubsystemCinfo)
Parameters
Type | Name | Description |
---|---|---|
XRHumanBodySubsystemCinfo | humanBodySubsystemCinfo | The human body subsystem implementation construction information. |
Returns
Type | Description |
---|---|
Boolean |
|
Start()
Start the subsystem by starting the provider.
Declaration
public override void Start()
Stop()
Stop the subsystem by stopping the provider.
Declaration
public override void Stop()
TryGetHumanDepth(out XRTextureDescriptor)
Gets the human depth texture descriptor.
Declaration
public bool TryGetHumanDepth(out XRTextureDescriptor humanDepthDescriptor)
Parameters
Type | Name | Description |
---|---|---|
XRTextureDescriptor | humanDepthDescriptor | The human depth texture descriptor to be populated, if available from the provider. |
Returns
Type | Description |
---|---|
Boolean |
|
Exceptions
Type | Condition |
---|---|
NotSupportedException | Thrown if the implementation does not support human depth texture. |
TryGetHumanStencil(out XRTextureDescriptor)
Gets the human stencil texture descriptor.
Declaration
public bool TryGetHumanStencil(out XRTextureDescriptor humanStencilDescriptor)
Parameters
Type | Name | Description |
---|---|---|
XRTextureDescriptor | humanStencilDescriptor | The human stencil texture descriptor to be populated, if available from the provider. |
Returns
Type | Description |
---|---|
Boolean |
|
Exceptions
Type | Condition |
---|---|
NotSupportedException | Thrown if the implementation does not support human stencil texture. |