Class XRCameraSubsystem
Provides access to a device's camera.
Inherited Members
Namespace: UnityEngine.XR.ARSubsystems
Syntax
public abstract class XRCameraSubsystem : XRSubsystem<XRCameraSubsystemDescriptor>
Remarks
The XRCameraSubsystem
links a Unity Camera
to a device camera for video overlay (pass-thru
rendering). It also allows developers to query for environmental light estimation, when available.
Constructors
XRCameraSubsystem()
Construct the XRCameraSubsystem
.
Declaration
public XRCameraSubsystem()
Properties
cameraMaterial
Get the material used by XRCameraSubsystem
to render the camera texture.
Declaration
public Material cameraMaterial { get; }
Property Value
Type | Description |
---|---|
Material | The material to render the camera texture. |
currentConfiguration
The current camera configuration.
Declaration
public virtual XRCameraConfiguration? currentConfiguration { get; set; }
Property Value
Type | Description |
---|---|
Nullable<XRCameraConfiguration> | The current camera configuration if it exists. Otherise, |
Exceptions
Type | Condition |
---|---|
NotSupportedException | Thrown when setting the current configuration if the implementation does not support camera configurations. |
ArgumentNullException | Thrown when setting the current configuration if the given
configuration is |
ArgumentException | Thrown when setting the current configuration if the given configuration is not a supported camera configuration. |
InvalidOperationException | Thrown when setting the current configuration if the implementation is unable to set the current camera configuration. |
focusMode
Get or set the focus mode for the camera.
Declaration
public CameraFocusMode focusMode { get; set; }
Property Value
Type | Description |
---|---|
CameraFocusMode | The focus mode for the camera. |
invertCulling
Whether to invert the culling mode during rendering. Some front-facing camera modes may require this.
Declaration
public bool invertCulling { get; }
Property Value
Type | Description |
---|---|
Boolean |
lightEstimationMode
Specifies the light estimation mode.
Declaration
public LightEstimationMode lightEstimationMode { get; set; }
Property Value
Type | Description |
---|---|
LightEstimationMode | The light estimation mode. |
permissionGranted
Determines whether camera permission has been granted.
Declaration
public bool permissionGranted { get; }
Property Value
Type | Description |
---|---|
Boolean |
|
Methods
CreateProvider()
Method for the implementation to create the camera functionality provider.
Declaration
protected abstract XRCameraSubsystem.Provider CreateProvider()
Returns
Type | Description |
---|---|
XRCameraSubsystem.Provider | The camera functionality provider. |
GetConfigurations(Allocator)
Queries for the supported camera configurations.
Declaration
public NativeArray<XRCameraConfiguration> GetConfigurations(Allocator allocator)
Parameters
Type | Name | Description |
---|---|---|
Allocator | allocator | The allocation strategy to use for the returned data. |
Returns
Type | Description |
---|---|
NativeArray<XRCameraConfiguration> | The supported camera configurations. |
GetTextureDescriptors(Allocator)
Gets the XRTextureDescriptors associated with the
current frame. The caller owns the returned NativeArray
and is responsible for calling Dispose
on it.
Declaration
public NativeArray<XRTextureDescriptor> GetTextureDescriptors(Allocator allocator)
Parameters
Type | Name | Description |
---|---|---|
Allocator | allocator | The allocator to use when creating
the returned |
Returns
Type | Description |
---|---|
NativeArray<XRTextureDescriptor> | An array of texture descriptors. |
OnDestroyed()
Destroy the camera subsystem.
Declaration
protected override sealed void OnDestroyed()
Overrides
OnStart()
Start the camera subsystem.
Declaration
protected override sealed void OnStart()
Overrides
OnStop()
Stop the camera subsystem.
Declaration
protected override sealed void OnStop()
Overrides
Register(XRCameraSubsystemCinfo)
Registers a camera subsystem implementation based on the given subsystem parameters.
Declaration
public static bool Register(XRCameraSubsystemCinfo cameraSubsystemParams)
Parameters
Type | Name | Description |
---|---|---|
XRCameraSubsystemCinfo | cameraSubsystemParams | The parameters defining the camera subsystem functionality implemented by the subsystem provider. |
Returns
Type | Description |
---|---|
Boolean |
|
Exceptions
Type | Condition |
---|---|
ArgumentException | Thrown when the values specified in the XRCameraSubsystemCinfo parameter are invalid. Typically, this will occur
|
TryGetIntrinsics(out XRCameraIntrinsics)
Returns the camera intrinsics information.
Declaration
public bool TryGetIntrinsics(out XRCameraIntrinsics cameraIntrinsics)
Parameters
Type | Name | Description |
---|---|---|
XRCameraIntrinsics | cameraIntrinsics | The camera intrinsics information returned from the method. |
Returns
Type | Description |
---|---|
Boolean |
|
TryGetLatestFrame(XRCameraParams, out XRCameraFrame)
Get the latest frame from the provider.
Declaration
public bool TryGetLatestFrame(XRCameraParams cameraParams, out XRCameraFrame frame)
Parameters
Type | Name | Description |
---|---|---|
XRCameraParams | cameraParams | The Unity |
XRCameraFrame | frame | The camera frame to be populated if the subsystem is running and successfully provides the latest camera frame. |
Returns
Type | Description |
---|---|
Boolean |
|
TryGetLatestImage(out XRCameraImage)
Attempt to get the latest camera image. This provides directly access to the raw pixel data, as well as utilities to convert to RGB and Grayscale formats.
Declaration
public bool TryGetLatestImage(out XRCameraImage cameraImage)
Parameters
Type | Name | Description |
---|---|---|
XRCameraImage | cameraImage | A valid XRCameraImage if this method returns |
Returns
Type | Description |
---|---|
Boolean |
|
Remarks
The returned XRCameraImage must be disposed to avoid resource leaks.
Exceptions
Type | Condition |
---|---|
NotSupportedException | Thrown if the implementation does not support camera image. |