Class XRCameraSubsystem.Provider
Interface for providing camera functionality for the implementation.
Inheritance
Inherited Members
Namespace: UnityEngine.XR.ARSubsystems
Syntax
public class Provider : SubsystemProvider<XRCameraSubsystem>
Properties
autoFocusEnabled
Get whether auto focus is enabled.
Declaration
public virtual bool autoFocusEnabled { get; }
Property Value
| Type | Description |
|---|---|
| Boolean |
See Also
autoFocusRequested
Get or set whether auto focus is requested.
Declaration
public virtual bool autoFocusRequested { get; set; }
Property Value
| Type | Description |
|---|---|
| Boolean |
cameraMaterial
Get the Material used by this XRCameraSubsystem to render the camera texture.
Declaration
public virtual Material cameraMaterial { get; }
Property Value
| Type | Description |
|---|---|
| UnityEngine.Material | The Material to render the camera texture. |
cpuImageApi
An instance of the XRCpuImage.Api used to operate on XRCpuImage objects.
Declaration
public virtual XRCpuImage.Api cpuImageApi { get; }
Property Value
| Type | Description |
|---|---|
| XRCpuImage.Api |
currentBackgroundRenderingMode
Get the current XRCameraBackgroundRenderingMode.
Declaration
public virtual XRCameraBackgroundRenderingMode currentBackgroundRenderingMode { get; }
Property Value
| Type | Description |
|---|---|
| XRCameraBackgroundRenderingMode | The current XRCameraBackgroundRenderingMode. |
See Also
currentCamera
Get the actual camera facing direction.
Declaration
public virtual Feature currentCamera { get; }
Property Value
| Type | Description |
|---|---|
| Feature | The current camera facing direction. |
See Also
currentConfiguration
Property to be implemented by the provider to query or set the current camera configuration.
Declaration
public virtual XRCameraConfiguration? currentConfiguration { get; set; }
Property Value
| Type | Description |
|---|---|
| Nullable<XRCameraConfiguration> | The current camera configuration, if it exists. Otherwise, null. |
Exceptions
| Type | Condition |
|---|---|
| NotSupportedException | Thrown when setting the current configuration if the implementation does not support camera configurations. |
| ArgumentException | Thrown when setting the current configuration if the given configuration is not a valid, supported camera configuration. |
| InvalidOperationException | Thrown when setting the current configuration if the implementation is unable to set the current camera configuration. |
currentLightEstimation
Get the current light estimation mode in use by the subsystem.
Declaration
public virtual Feature currentLightEstimation { get; }
Property Value
| Type | Description |
|---|---|
| Feature | The current light estimation mode. |
See Also
invertCulling
Get whether culling should be inverted during rendering. Some front-facing camera modes might require this.
Declaration
public virtual bool invertCulling { get; }
Property Value
| Type | Description |
|---|---|
| Boolean | true if culling should be inverted during rendering. Otherwise, false. |
permissionGranted
Get whether camera permission has been granted.
Declaration
public virtual bool permissionGranted { get; }
Property Value
| Type | Description |
|---|---|
| Boolean | true if camera permission has been granted. Otherwise, false. |
requestedBackgroundRenderingMode
Get or set the requested XRCameraBackgroundRenderingMode.
Declaration
public virtual XRSupportedCameraBackgroundRenderingMode requestedBackgroundRenderingMode { get; set; }
Property Value
| Type | Description |
|---|---|
| XRSupportedCameraBackgroundRenderingMode | The requested background rendering mode. |
requestedCamera
Get or set the requested camera facing direction, that is, the AnyCamera bits.
Declaration
public virtual Feature requestedCamera { get; set; }
Property Value
| Type | Description |
|---|---|
| Feature | The requested camera facing direction |
requestedLightEstimation
Get or set the requested light estimation mode.
Declaration
public virtual Feature requestedLightEstimation { get; set; }
Property Value
| Type | Description |
|---|---|
| Feature | The requested light estimation mode. |
supportedBackgroundRenderingMode
Get the supported XRCameraBackgroundRenderingModes defined as XRSupportedCameraBackgroundRenderingModes.
Declaration
public virtual XRSupportedCameraBackgroundRenderingMode supportedBackgroundRenderingMode { get; }
Property Value
| Type | Description |
|---|---|
| XRSupportedCameraBackgroundRenderingMode | The supported background rendering modes. |
Methods
CreateCameraMaterial(String)
Create the camera material from the given camera shader name.
Declaration
protected Material CreateCameraMaterial(string cameraShaderName)
Parameters
| Type | Name | Description |
|---|---|---|
| String | cameraShaderName | The name of the camera shader. |
Returns
| Type | Description |
|---|---|
| UnityEngine.Material | The created camera material shader. |
Exceptions
| Type | Condition |
|---|---|
| InvalidOperationException | Thrown if the shader cannot be found or if a material cannot be created for the shader. |
Destroy()
Destroy the camera for the subsystem.
Declaration
public override void Destroy()
Overrides
GetConfigurations(XRCameraConfiguration, Allocator)
Get the supported camera configurations.
Declaration
public virtual NativeArray<XRCameraConfiguration> GetConfigurations(XRCameraConfiguration defaultCameraConfiguration, Allocator allocator)
Parameters
| Type | Name | Description |
|---|---|---|
| XRCameraConfiguration | defaultCameraConfiguration | A default value used to fill the returned array before copying in real values. This ensures future additions to this struct are backwards compatible. |
| Unity.Collections.Allocator | allocator | The allocation strategy to use for the returned data. |
Returns
| Type | Description |
|---|---|
| Unity.Collections.NativeArray<XRCameraConfiguration> | The supported camera configurations. |
GetMaterialKeywords(out List<String>, out List<String>)
Get the enabled and disabled shader keywords for the Material.
Declaration
public virtual void GetMaterialKeywords(out List<string> enabledKeywords, out List<string> disabledKeywords)
Parameters
| Type | Name | Description |
|---|---|---|
| List<String> | enabledKeywords | The keywords to enable for the Material. |
| List<String> | disabledKeywords | The keywords to disable for the Material. |
GetTextureDescriptors(XRTextureDescriptor, Allocator)
Get the XRTextureDescriptors associated with the current XRCameraFrame.
Declaration
public virtual NativeArray<XRTextureDescriptor> GetTextureDescriptors(XRTextureDescriptor defaultDescriptor, Allocator allocator)
Parameters
| Type | Name | Description |
|---|---|---|
| XRTextureDescriptor | defaultDescriptor | A default value used to fill the returned array before copying in real values. This ensures future additions to this struct are backwards compatible. |
| Unity.Collections.Allocator | allocator | The allocation strategy to use for the returned data.. |
Returns
| Type | Description |
|---|---|
| Unity.Collections.NativeArray<XRTextureDescriptor> | The current texture descriptors. |
OnBeforeBackgroundRender(Int32)
Method to be implemented by the provider to handle any required platform-specific functionality immediately before rendering the camera background. This method will always be called on the render thread and should only be called by the code responsible for executing background rendering on mobile AR platforms.
Declaration
public virtual void OnBeforeBackgroundRender(int id)
Parameters
| Type | Name | Description |
|---|---|---|
| Int32 | id | Platform-specific identifier. |
Start()
Start the camera for the subsystem.
Declaration
public override void Start()
Overrides
Stop()
Stop the camera for the subsystem.
Declaration
public override void Stop()
Overrides
TryAcquireLatestCpuImage(out XRCpuImage.Cinfo)
Get the latest native camera image.
Declaration
public virtual bool TryAcquireLatestCpuImage(out XRCpuImage.Cinfo cameraImageCinfo)
Parameters
| Type | Name | Description |
|---|---|---|
| XRCpuImage.Cinfo | cameraImageCinfo | The metadata required to construct a XRCpuImage. |
Returns
| Type | Description |
|---|---|
| Boolean |
Exceptions
| Type | Condition |
|---|---|
| NotSupportedException | Thrown if the implementation does not support camera image. |
TryGetFrame(XRCameraParams, out XRCameraFrame)
Get the camera frame for the subsystem.
Declaration
public virtual bool TryGetFrame(XRCameraParams cameraParams, out XRCameraFrame cameraFrame)
Parameters
| Type | Name | Description |
|---|---|---|
| XRCameraParams | cameraParams | The current Unity |
| XRCameraFrame | cameraFrame | The current camera frame returned by the method. |
Returns
| Type | Description |
|---|---|
| Boolean | true if the method successfully got a frame. Otherwise, false. |
TryGetIntrinsics(out XRCameraIntrinsics)
Get the camera intrinsics information.
Declaration
public virtual bool TryGetIntrinsics(out XRCameraIntrinsics cameraIntrinsics)
Parameters
| Type | Name | Description |
|---|---|---|
| XRCameraIntrinsics | cameraIntrinsics | The camera intrinsics information returned from the method. |
Returns
| Type | Description |
|---|---|
| Boolean | true if the method successfully gets the camera intrinsics information. Otherwise, false. |