Class ARCameraBackground
Add this component to a Camera
to copy the color camera's texture onto the background.
If you are using the Lightweight Render Pipeline (version 5.7.2 or later) or the Univerisal Render Pipeline (version 7.0.0 or later), you must also add the ARBackgroundRendererFeature to the list of render features for the scriptable renderer.
Inherited Members
Namespace: UnityEngine.XR.ARFoundation
Syntax
[DisallowMultipleComponent]
[RequireComponent(typeof(Camera))]
[RequireComponent(typeof(ARCameraManager))]
[HelpURL("https://docs.unity3d.com/Packages/com.unity.xr.arfoundation@3.0/api/UnityEngine.XR.ARFoundation.ARCameraBackground.html")]
public class ARCameraBackground : MonoBehaviour
Remarks
To add the ARBackgroundRendererFeature to the list of render features for the scriptable renderer:
- In Project Settings -> Graphics, select the render pipeline asset (either
LightweightRenderPipelineAsset
orUniversalRenderPipelineAsset
) that is in the Scriptable Render Pipeline Settings field. - In the Inspector with the render pipeline asset selected, ensure that the Render Type is set to Custom.
- In the Inspector with the render pipeline asset selected, select the Render Type -> Data
asset which would be of type
ForwardRendererData
. - In the Inspector with the forward renderer data selected, ensure the Render Features list contains a ARBackgroundRendererFeature.
To customize background rendering with the legacy render pipeline, you may override the
legacyCameraEvents property and the
ConfigureLegacyCommandBuffer(CommandBuffer) method to modify the given
CommandBuffer
with rendering commands and to inject the given CommandBuffer
into the camera's
rendering.
To customize background rendering with a scriptable render pipeline, create a
ScriptableRendererFeature
with the background rendering commands, and insert the
ScriptableRendererFeature
into the list of render features for the scriptable renderer.
Properties
backgroundRenderingEnabled
Whether background rendering is enabled.
Declaration
public bool backgroundRenderingEnabled { get; }
Property Value
Type | Description |
---|---|
Boolean |
|
camera
The camera to which the projection matrix is set on each frame event.
Declaration
protected Camera camera { get; }
Property Value
Type | Description |
---|---|
Camera | The camera to which the projection matrix is set on each frame event. |
cameraManager
The camera manager from which frame information is pulled.
Declaration
protected ARCameraManager cameraManager { get; }
Property Value
Type | Description |
---|---|
ARCameraManager | The camera manager from which frame information is pulled. |
customMaterial
A custom material for rendering the background.
Declaration
public Material customMaterial { get; set; }
Property Value
Type | Description |
---|---|
Material | A custom material for rendering the background. |
legacyCameraEvents
The list of CameraEvents to add to the CommandBuffer. By default, returns BeforeForwardOpaque and BeforeGBuffer}. Override to use different camera events.
Declaration
protected virtual IEnumerable<CameraEvent> legacyCameraEvents { get; }
Property Value
Type | Description |
---|---|
IEnumerable<CameraEvent> |
material
The current Material
used for background rendering.
Declaration
public Material material { get; }
Property Value
Type | Description |
---|---|
Material |
shouldInvertCulling
Whether culling should be inverted. Used during command buffer configuration, see CommandBuffer.SetInvertCulling.
Declaration
protected bool shouldInvertCulling { get; }
Property Value
Type | Description |
---|---|
Boolean |
See Also
useCustomMaterial
Whether to use the custom material for rendering the background.
Declaration
public bool useCustomMaterial { get; set; }
Property Value
Type | Description |
---|---|
Boolean |
|
Methods
AddOpenGLES3ResetStateCommand(CommandBuffer)
When using OpenGLES3, this adds a command to the commandBuffer
which will force Unity to reset the OpenGL state. This is necessary on devices using OpenGLES3.
If OpenGLES3 is not the current graphics device type, this method does nothing. This should be
the first command in the command buffer.
Declaration
protected static void AddOpenGLES3ResetStateCommand(CommandBuffer commandBuffer)
Parameters
Type | Name | Description |
---|---|---|
CommandBuffer | commandBuffer | The CommandBuffer to add the command to. |
ConfigureLegacyCommandBuffer(CommandBuffer)
Configures the commandBuffer
by first clearing it,
and then adding necessary render commands.
Declaration
protected virtual void ConfigureLegacyCommandBuffer(CommandBuffer commandBuffer)
Parameters
Type | Name | Description |
---|---|---|
CommandBuffer | commandBuffer | The command buffer to configure. |