docs.unity3d.com
    Show / Hide Table of Contents

    Class ARCameraBackground

    Add this component to a Camera to copy the color camera's texture onto the background.

    If you are using the Universal Render Pipeline (version 7.0.0 or later), you must also add the ARBackgroundRendererFeature to the list of render features for the scriptable renderer.

    Inheritance
    Object
    UnityEngine.Object
    UnityEngine.Component
    UnityEngine.Behaviour
    UnityEngine.MonoBehaviour
    ARCameraBackground
    Inherited Members
    UnityEngine.MonoBehaviour.IsInvoking()
    UnityEngine.MonoBehaviour.CancelInvoke()
    UnityEngine.MonoBehaviour.Invoke(System.String, System.Single)
    UnityEngine.MonoBehaviour.InvokeRepeating(System.String, System.Single, System.Single)
    UnityEngine.MonoBehaviour.CancelInvoke(System.String)
    UnityEngine.MonoBehaviour.IsInvoking(System.String)
    UnityEngine.MonoBehaviour.StartCoroutine(System.String)
    UnityEngine.MonoBehaviour.StartCoroutine(System.String, System.Object)
    UnityEngine.MonoBehaviour.StartCoroutine(System.Collections.IEnumerator)
    UnityEngine.MonoBehaviour.StartCoroutine_Auto(System.Collections.IEnumerator)
    UnityEngine.MonoBehaviour.StopCoroutine(System.Collections.IEnumerator)
    UnityEngine.MonoBehaviour.StopCoroutine(UnityEngine.Coroutine)
    UnityEngine.MonoBehaviour.StopCoroutine(System.String)
    UnityEngine.MonoBehaviour.StopAllCoroutines()
    UnityEngine.MonoBehaviour.print(System.Object)
    UnityEngine.MonoBehaviour.useGUILayout
    UnityEngine.MonoBehaviour.runInEditMode
    UnityEngine.Behaviour.enabled
    UnityEngine.Behaviour.isActiveAndEnabled
    UnityEngine.Component.GetComponent(System.Type)
    UnityEngine.Component.GetComponent<T>()
    UnityEngine.Component.TryGetComponent(System.Type, UnityEngine.Component)
    UnityEngine.Component.TryGetComponent<T>(T)
    UnityEngine.Component.GetComponent(System.String)
    UnityEngine.Component.GetComponentInChildren(System.Type, System.Boolean)
    UnityEngine.Component.GetComponentInChildren(System.Type)
    UnityEngine.Component.GetComponentInChildren<T>(System.Boolean)
    UnityEngine.Component.GetComponentInChildren<T>()
    UnityEngine.Component.GetComponentsInChildren(System.Type, System.Boolean)
    UnityEngine.Component.GetComponentsInChildren(System.Type)
    UnityEngine.Component.GetComponentsInChildren<T>(System.Boolean)
    UnityEngine.Component.GetComponentsInChildren<T>(System.Boolean, System.Collections.Generic.List<T>)
    UnityEngine.Component.GetComponentsInChildren<T>()
    UnityEngine.Component.GetComponentsInChildren<T>(System.Collections.Generic.List<T>)
    UnityEngine.Component.GetComponentInParent(System.Type, System.Boolean)
    UnityEngine.Component.GetComponentInParent(System.Type)
    UnityEngine.Component.GetComponentInParent<T>(System.Boolean)
    UnityEngine.Component.GetComponentInParent<T>()
    UnityEngine.Component.GetComponentsInParent(System.Type, System.Boolean)
    UnityEngine.Component.GetComponentsInParent(System.Type)
    UnityEngine.Component.GetComponentsInParent<T>(System.Boolean)
    UnityEngine.Component.GetComponentsInParent<T>(System.Boolean, System.Collections.Generic.List<T>)
    UnityEngine.Component.GetComponentsInParent<T>()
    UnityEngine.Component.GetComponents(System.Type)
    UnityEngine.Component.GetComponents(System.Type, System.Collections.Generic.List<UnityEngine.Component>)
    UnityEngine.Component.GetComponents<T>(System.Collections.Generic.List<T>)
    UnityEngine.Component.GetComponents<T>()
    UnityEngine.Component.CompareTag(System.String)
    UnityEngine.Component.SendMessageUpwards(System.String, System.Object, UnityEngine.SendMessageOptions)
    UnityEngine.Component.SendMessageUpwards(System.String, System.Object)
    UnityEngine.Component.SendMessageUpwards(System.String)
    UnityEngine.Component.SendMessageUpwards(System.String, UnityEngine.SendMessageOptions)
    UnityEngine.Component.SendMessage(System.String, System.Object)
    UnityEngine.Component.SendMessage(System.String)
    UnityEngine.Component.SendMessage(System.String, System.Object, UnityEngine.SendMessageOptions)
    UnityEngine.Component.SendMessage(System.String, UnityEngine.SendMessageOptions)
    UnityEngine.Component.BroadcastMessage(System.String, System.Object, UnityEngine.SendMessageOptions)
    UnityEngine.Component.BroadcastMessage(System.String, System.Object)
    UnityEngine.Component.BroadcastMessage(System.String)
    UnityEngine.Component.BroadcastMessage(System.String, UnityEngine.SendMessageOptions)
    UnityEngine.Component.transform
    UnityEngine.Component.gameObject
    UnityEngine.Component.tag
    UnityEngine.Object.GetInstanceID()
    UnityEngine.Object.GetHashCode()
    UnityEngine.Object.Equals(System.Object)
    UnityEngine.Object.Instantiate(UnityEngine.Object, UnityEngine.Vector3, UnityEngine.Quaternion)
    UnityEngine.Object.Instantiate(UnityEngine.Object, UnityEngine.Vector3, UnityEngine.Quaternion, UnityEngine.Transform)
    UnityEngine.Object.Instantiate(UnityEngine.Object)
    UnityEngine.Object.Instantiate(UnityEngine.Object, UnityEngine.Transform)
    UnityEngine.Object.Instantiate(UnityEngine.Object, UnityEngine.Transform, System.Boolean)
    UnityEngine.Object.Instantiate<T>(T)
    UnityEngine.Object.Instantiate<T>(T, UnityEngine.Vector3, UnityEngine.Quaternion)
    UnityEngine.Object.Instantiate<T>(T, UnityEngine.Vector3, UnityEngine.Quaternion, UnityEngine.Transform)
    UnityEngine.Object.Instantiate<T>(T, UnityEngine.Transform)
    UnityEngine.Object.Instantiate<T>(T, UnityEngine.Transform, System.Boolean)
    UnityEngine.Object.Destroy(UnityEngine.Object, System.Single)
    UnityEngine.Object.Destroy(UnityEngine.Object)
    UnityEngine.Object.DestroyImmediate(UnityEngine.Object, System.Boolean)
    UnityEngine.Object.DestroyImmediate(UnityEngine.Object)
    UnityEngine.Object.FindObjectsOfType(System.Type)
    UnityEngine.Object.FindObjectsOfType(System.Type, System.Boolean)
    UnityEngine.Object.DontDestroyOnLoad(UnityEngine.Object)
    UnityEngine.Object.DestroyObject(UnityEngine.Object, System.Single)
    UnityEngine.Object.DestroyObject(UnityEngine.Object)
    UnityEngine.Object.FindSceneObjectsOfType(System.Type)
    UnityEngine.Object.FindObjectsOfTypeIncludingAssets(System.Type)
    UnityEngine.Object.FindObjectsOfType<T>()
    UnityEngine.Object.FindObjectsOfType<T>(System.Boolean)
    UnityEngine.Object.FindObjectOfType<T>()
    UnityEngine.Object.FindObjectOfType<T>(System.Boolean)
    UnityEngine.Object.FindObjectsOfTypeAll(System.Type)
    UnityEngine.Object.FindObjectOfType(System.Type)
    UnityEngine.Object.FindObjectOfType(System.Type, System.Boolean)
    UnityEngine.Object.ToString()
    UnityEngine.Object.name
    UnityEngine.Object.hideFlags
    Object.Equals(Object, Object)
    Object.ReferenceEquals(Object, Object)
    Object.GetType()
    Object.MemberwiseClone()
    Namespace: UnityEngine.XR.ARFoundation
    Syntax
    [DisallowMultipleComponent]
    [RequireComponent(typeof(Camera))]
    [RequireComponent(typeof(ARCameraManager))]
    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 (UniversalRenderPipelineAsset) that is in the Scriptable Render Pipeline Settings field.
    • In the render pipeline asset's Inspector window, make sure that the Render Type is set to Custom.
    • In render pipeline asset's Inspector window, select the Render Type > Data asset which would be of type ForwardRendererData.
    • In forward renderer data's Inspector window, ensure the Render Features list contains a ARBackgroundRendererFeature.

    To customize background rendering with the legacy render pipeline, you can 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.

    Fields

    OnCameraRenderingModeChanged

    A delegate for capturing when the currentRenderingMode has changed. Use to change make any changes to the parameters of the ARCameraBackground (IE. changing custom materials out) before configuring the command buffer for background rendering.

    Declaration
    public static Action<XRCameraBackgroundRenderingMode> OnCameraRenderingModeChanged
    Field Value
    Type Description
    Action<XRCameraBackgroundRenderingMode>

    Properties

    backgroundRenderingEnabled

    Whether background rendering is enabled.

    Declaration
    public bool backgroundRenderingEnabled { get; }
    Property Value
    Type Description
    Boolean

    true if background rendering is enabled and if at least one camera frame has been received. Otherwise, false.

    camera

    The camera to which the projection matrix is set on each frame event.

    Declaration
    protected Camera camera { get; }
    Property Value
    Type Description
    UnityEngine.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.

    currentRenderingMode

    The current XRCameraBackgroundRenderingMode. Determines which render order to use.

    Declaration
    public XRCameraBackgroundRenderingMode currentRenderingMode { get; }
    Property Value
    Type Description
    XRCameraBackgroundRenderingMode

    customMaterial

    A custom material for rendering the background.

    Declaration
    public Material customMaterial { get; set; }
    Property Value
    Type Description
    UnityEngine.Material

    A custom material for rendering the background.

    legacyCameraEvents

    The list of CameraEvents to add to the CommandBuffer. By default, it will select either UnityEngine.XR.ARFoundation.ARCameraBackground.s_DefaultBeforeOpaqueCameraEvents or UnityEngine.XR.ARFoundation.ARCameraBackground.s_DefaultAfterOpaqueCameraEvents depending on the value of currentRenderingMode.

    In the case where Before Opaques rendering has been selected it will return:

    BeforeForwardOpaque and BeforeGBuffer}.

    In the case where After Opaques rendering has been selected it will return:

    AfterForwardOpaque and AfterGBuffer}.

    Override to use different camera events.

    Declaration
    protected virtual IEnumerable<CameraEvent> legacyCameraEvents { get; }
    Property Value
    Type Description
    IEnumerable<UnityEngine.Rendering.CameraEvent>

    material

    The current Material used for background rendering.

    Declaration
    public Material material { get; }
    Property Value
    Type Description
    UnityEngine.Material

    occlusionManager

    The occlusion manager, which might not exist, from which occlusion information is pulled.

    Declaration
    protected AROcclusionManager occlusionManager { get; }
    Property Value
    Type Description
    AROcclusionManager

    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
    ConfigureLegacyCommandBuffer(CommandBuffer)

    useCustomMaterial

    Whether to use the custom material for rendering the background.

    Declaration
    public bool useCustomMaterial { get; set; }
    Property Value
    Type Description
    Boolean

    true if the custom material should be used for rendering the camera background. Otherwise, false.

    Methods

    ConfigureLegacyCommandBuffer(CommandBuffer)

    Configures the commandBuffer by first clearing it, then adding necessary render commands.

    Declaration
    protected virtual void ConfigureLegacyCommandBuffer(CommandBuffer commandBuffer)
    Parameters
    Type Name Description
    UnityEngine.Rendering.CommandBuffer commandBuffer

    The command buffer to configure.

    Back to top
    Copyright © 2023 Unity Technologies — Terms of use
    • Legal
    • Privacy Policy
    • Cookies
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)
    "Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
    Generated by DocFX on 18 October 2023