Class AROcclusionManager
The manager for the occlusion subsystem.
Inheritance
Inherited Members
Namespace: UnityEngine.XR.ARFoundation
Assembly: Unity.XR.ARFoundation.dll
Syntax
[DisallowMultipleComponent]
[DefaultExecutionOrder(-2147483647)]
[RequireComponent(typeof(Camera))]
[AddComponentMenu("XR/AR Foundation/AR Occlusion Manager")]
public sealed class AROcclusionManager : SubsystemLifecycleManager<XROcclusionSubsystem, XROcclusionSubsystemDescriptor, XROcclusionSubsystem.Provider>
Remarks
Related information: Occlusion
Properties
currentEnvironmentDepthMode
Get the current environment depth mode in use by the subsystem.
Declaration
public EnvironmentDepthMode currentEnvironmentDepthMode { get; }
Property Value
| Type | Description |
|---|---|
| EnvironmentDepthMode |
currentHumanDepthMode
Get the current human segmentation depth mode in use by the subsystem.
Declaration
public HumanSegmentationDepthMode currentHumanDepthMode { get; }
Property Value
| Type | Description |
|---|---|
| HumanSegmentationDepthMode |
currentHumanStencilMode
Get the current mode in use for generating the human segmentation stencil mode.
Declaration
public HumanSegmentationStencilMode currentHumanStencilMode { get; }
Property Value
| Type | Description |
|---|---|
| HumanSegmentationStencilMode |
currentOcclusionPreferenceMode
Get the current occlusion preference mode in use by the subsystem.
Declaration
public OcclusionPreferenceMode currentOcclusionPreferenceMode { get; }
Property Value
| Type | Description |
|---|---|
| OcclusionPreferenceMode |
environmentDepthConfidenceTexture
The environment depth confidence texture.
Declaration
[Obsolete("environmentDepthConfidenceTexture is deprecated in AR Foundation version 6.1. Use TryGetEnvironmentDepthConfidenceTexture() instead.", false)]
public Texture2D environmentDepthConfidenceTexture { get; }
Property Value
| Type | Description |
|---|---|
| Texture2D | The environment depth confidence texture, if any. Otherwise, |
environmentDepthTemporalSmoothingEnabled
Whether temporal smoothing is applied to the environment depth image. Query for support with environmentDepthTemporalSmoothingSupported.
Declaration
public bool environmentDepthTemporalSmoothingEnabled { get; }
Property Value
| Type | Description |
|---|---|
| bool | true if temporal smoothing is applied to the environment depth image. Otherwise, false. |
environmentDepthTemporalSmoothingRequested
Whether temporal smoothing should be applied to the environment depth image. Query for support with environmentDepthTemporalSmoothingSupported.
Declaration
public bool environmentDepthTemporalSmoothingRequested { get; set; }
Property Value
| Type | Description |
|---|---|
| bool | true if environment depth temporal smoothing is requested. Otherwise, false. |
environmentDepthTexture
The environment depth texture.
Declaration
[Obsolete("environmentDepthTexture is deprecated in AR Foundation version 6.1. Use TryGetEnvironmentDepthTexture() instead.", false)]
public Texture2D environmentDepthTexture { get; }
Property Value
| Type | Description |
|---|---|
| Texture2D | The environment depth texture, if any. Otherwise, |
humanDepthTexture
The human segmentation depth texture, if any. Otherwise, null.
Declaration
public Texture2D humanDepthTexture { get; }
Property Value
| Type | Description |
|---|---|
| Texture2D | The human segmentation depth texture. |
humanStencilTexture
The human segmentation stencil texture, if any. Otherwise, null.
Declaration
public Texture2D humanStencilTexture { get; }
Property Value
| Type | Description |
|---|---|
| Texture2D | The human segmentation stencil texture. |
requestedEnvironmentDepthMode
Get or set the requested environment depth mode.
Declaration
public EnvironmentDepthMode requestedEnvironmentDepthMode { get; set; }
Property Value
| Type | Description |
|---|---|
| EnvironmentDepthMode |
requestedHumanDepthMode
Get or set the requested human segmentation depth mode.
Declaration
public HumanSegmentationDepthMode requestedHumanDepthMode { get; set; }
Property Value
| Type | Description |
|---|---|
| HumanSegmentationDepthMode |
requestedHumanStencilMode
Get or set the requested mode for generating the human segmentation stencil texture.
Declaration
public HumanSegmentationStencilMode requestedHumanStencilMode { get; set; }
Property Value
| Type | Description |
|---|---|
| HumanSegmentationStencilMode |
requestedOcclusionPreferenceMode
Get or set the requested occlusion preference mode.
Declaration
public OcclusionPreferenceMode requestedOcclusionPreferenceMode { get; set; }
Property Value
| Type | Description |
|---|---|
| OcclusionPreferenceMode |
Methods
OnAfterStart()
Callback after the subsystem is started.
Declaration
protected override void OnAfterStart()
Overrides
OnBeforeStart()
Callback before the subsystem is started (but after it is created).
Declaration
protected override void OnBeforeStart()
Overrides
OnDisable()
Callback when the manager is being disabled.
Declaration
protected override void OnDisable()
Overrides
TryAcquireEnvironmentDepthConfidenceCpuImage(out XRCpuImage)
Attempt to get the latest environment depth confidence CPU image. This provides direct access to the raw pixel data.
Declaration
public bool TryAcquireEnvironmentDepthConfidenceCpuImage(out XRCpuImage cpuImage)
Parameters
| Type | Name | Description |
|---|---|---|
| XRCpuImage | cpuImage | The environment depth confidence CPU image, if this method returns true. |
Returns
| Type | Description |
|---|---|
| bool |
Remarks
The XRCpuImage must be disposed to avoid resource leaks.
TryAcquireEnvironmentDepthCpuImage(out XRCpuImage)
Attempt to get the latest environment depth CPU image. This provides direct access to the raw pixel data.
Declaration
public bool TryAcquireEnvironmentDepthCpuImage(out XRCpuImage cpuImage)
Parameters
| Type | Name | Description |
|---|---|---|
| XRCpuImage | cpuImage | The environment depth CPU image, if this method returns true. |
Returns
| Type | Description |
|---|---|
| bool |
Remarks
The XRCpuImage must be disposed to avoid resource leaks.
TryAcquireHumanDepthCpuImage(out XRCpuImage)
Attempt to get the latest human depth CPU image. This provides direct access to the raw pixel data.
Declaration
public bool TryAcquireHumanDepthCpuImage(out XRCpuImage cpuImage)
Parameters
| Type | Name | Description |
|---|---|---|
| XRCpuImage | cpuImage | The human depth CPU image, if this method returns true. |
Returns
| Type | Description |
|---|---|
| bool |
Remarks
The XRCpuImage must be disposed to avoid resource leaks.
TryAcquireHumanStencilCpuImage(out XRCpuImage)
Attempt to get the latest human stencil CPU image. This provides directly access to the raw pixel data.
Declaration
public bool TryAcquireHumanStencilCpuImage(out XRCpuImage cpuImage)
Parameters
| Type | Name | Description |
|---|---|---|
| XRCpuImage | cpuImage | An acquired |
Returns
| Type | Description |
|---|---|
| bool |
Remarks
The XRCpuImage must be disposed to avoid resource leaks.
TryAcquireRawEnvironmentDepthCpuImage(out XRCpuImage)
Attempt to get the latest raw environment depth CPU image. This provides direct access to the raw pixel data.
Declaration
public bool TryAcquireRawEnvironmentDepthCpuImage(out XRCpuImage cpuImage)
Parameters
| Type | Name | Description |
|---|---|---|
| XRCpuImage | cpuImage | The raw environment depth CPU image, if this method returns true. |
Returns
| Type | Description |
|---|---|
| bool |
Remarks
Note
The XRCpuImage must be disposed to avoid resource leaks.
This differs from TryAcquireEnvironmentDepthCpuImage(out XRCpuImage) in that it always tries to acquire the
raw environment depth image, whereas TryAcquireEnvironmentDepthCpuImage(out XRCpuImage) depends on the value
of environmentDepthTemporalSmoothingEnabled.
TryAcquireSmoothedEnvironmentDepthCpuImage(out XRCpuImage)
Attempt to get the latest smoothed environment depth CPU image. This provides direct access to the raw pixel data.
Declaration
public bool TryAcquireSmoothedEnvironmentDepthCpuImage(out XRCpuImage cpuImage)
Parameters
| Type | Name | Description |
|---|---|---|
| XRCpuImage | cpuImage | The smoothed environment depth CPU image, if this method returns true. |
Returns
| Type | Description |
|---|---|
| bool |
Remarks
Note
The XRCpuImage must be disposed to avoid resource leaks.
This differs from TryAcquireEnvironmentDepthCpuImage(out XRCpuImage) in that it always tries to acquire the
smoothed environment depth image, whereas TryAcquireEnvironmentDepthCpuImage(out XRCpuImage)
depends on the value of environmentDepthTemporalSmoothingEnabled.
TryGetEnvironmentDepthConfidenceTexture(out ARExternalTexture)
Gets environment depth confidence texture, if possible. On OpenXR platforms, this may be a RenderTexture. Otherwise, the texture is of type Texture2D.
Declaration
public bool TryGetEnvironmentDepthConfidenceTexture(out ARExternalTexture depthConfidenceTexture)
Parameters
| Type | Name | Description |
|---|---|---|
| ARExternalTexture | depthConfidenceTexture | The output environment depth confidence texture, if this method returns true. |
Returns
| Type | Description |
|---|---|
| bool | true if |
TryGetEnvironmentDepthTexture(out Texture)
Gets environment depth texture, if possible. On OpenXR platforms, this may be a RenderTexture. Otherwise, the texture is of type Texture2D.
Declaration
public bool TryGetEnvironmentDepthTexture(out Texture depthTexture)
Parameters
| Type | Name | Description |
|---|---|---|
| Texture | depthTexture | The output environment depth texture, if this method returns true. |
Returns
| Type | Description |
|---|---|
| bool | true if |
Update()
Callback as the manager is being updated.
Declaration
public void Update()
Events
frameReceived
An event that fires each time an occlusion camera frame is received.
Declaration
public event Action<AROcclusionFrameEventArgs> frameReceived
Event Type
| Type | Description |
|---|---|
| Action<AROcclusionFrameEventArgs> |