docs.unity3d.com
    Show / Hide Table of Contents

    Class ARCameraManager

    Manages the life cycle of the XRCameraSubsystem. Add one of these to a Camera in your scene if you want camera texture and light estimation information to be available.

    Inheritance
    Object
    UnityEngine.Object
    UnityEngine.Component
    UnityEngine.Behaviour
    UnityEngine.MonoBehaviour
    SubsystemLifecycleManager<XRCameraSubsystem, XRCameraSubsystemDescriptor, XRCameraSubsystem.Provider>
    ARCameraManager
    Inherited Members
    SubsystemLifecycleManager<XRCameraSubsystem, XRCameraSubsystemDescriptor, XRCameraSubsystem.Provider>.subsystem
    SubsystemLifecycleManager<XRCameraSubsystem, XRCameraSubsystemDescriptor, XRCameraSubsystem.Provider>.descriptor
    SubsystemLifecycleManager<XRCameraSubsystem, XRCameraSubsystemDescriptor, XRCameraSubsystem.Provider>.GetActiveSubsystemInstance()
    SubsystemLifecycleManager<XRCameraSubsystem, XRCameraSubsystemDescriptor, XRCameraSubsystem.Provider>.EnsureSubsystemInstanceSet()
    SubsystemLifecycleManager<XRCameraSubsystem, XRCameraSubsystemDescriptor, XRCameraSubsystem.Provider>.OnEnable()
    SubsystemLifecycleManager<XRCameraSubsystem, XRCameraSubsystemDescriptor, XRCameraSubsystem.Provider>.OnDisable()
    SubsystemLifecycleManager<XRCameraSubsystem, XRCameraSubsystemDescriptor, XRCameraSubsystem.Provider>.OnDestroy()
    SubsystemLifecycleManager<XRCameraSubsystem, XRCameraSubsystemDescriptor, XRCameraSubsystem.Provider>.OnBeforeStart()
    SubsystemLifecycleManager<XRCameraSubsystem, XRCameraSubsystemDescriptor, XRCameraSubsystem.Provider>.OnAfterStart()
    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
    [DefaultExecutionOrder(-2147483647)]
    [DisallowMultipleComponent]
    [RequireComponent(typeof(Camera))]
    public sealed class ARCameraManager : SubsystemLifecycleManager<XRCameraSubsystem, XRCameraSubsystemDescriptor, XRCameraSubsystem.Provider>, ISerializationCallbackReceiver

    Properties

    autoFocusEnabled

    Get the current focus mode in use by the subsystem.

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

    true if auto focus is enabled. false if fixed focus is enabled or if there is no loaded XRCameraSubsystem.

    autoFocusRequested

    Get or set whether auto focus is requested.

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

    cameraMaterial

    The Material used in background rendering.

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

    The Material used in background rendering.

    currentConfiguration

    The current camera configuration.

    Declaration
    public 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.

    ArgumentNullException

    Thrown when setting the current configuration if the given configuration is null.

    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.

    currentFacingDirection

    The current camera facing direction. This should usually match requestedFacingDirection but might be different if the platform cannot service the requested camera facing direction, or it might take a few frames for the requested facing direction to become active.

    Declaration
    public CameraFacingDirection currentFacingDirection { get; }
    Property Value
    Type Description
    CameraFacingDirection

    currentLightEstimation

    Get the current light estimation mode used by the subsystem, or LightEstimation.None if there is no subsystem.

    Declaration
    public LightEstimation currentLightEstimation { get; }
    Property Value
    Type Description
    LightEstimation

    currentRenderingMode

    The current XRCameraBackgroundRenderingMode of the XRCameraSubsystem, or None if the subsystem is null.

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

    The current camera background rendering mode.

    focusMode

    Get or set the focus mode. This method is obsolete. The getter uses autoFocusEnabled and the setter uses autoFocusRequested.

    Declaration
    [Obsolete("Use autoFocusEnabled or autoFocusRequested instead. (2019-12-13)")]
    public CameraFocusMode focusMode { get; set; }
    Property Value
    Type Description
    CameraFocusMode

    lightEstimationMode

    Get or set the light estimation mode. This method is obsolete. The getter uses currentLightEstimation and the setter uses requestedLightEstimation.

    Declaration
    [Obsolete("Use currentLightEstimation or requestedLightEstimation instead. (2019-12-13)")]
    public LightEstimationMode lightEstimationMode { get; set; }
    Property Value
    Type Description
    LightEstimationMode

    permissionGranted

    Indicates whether camera permission has been granted.

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

    true if permission has been granted. Otherwise, false.

    requestedBackgroundRenderingMode

    The current requested CameraBackgroundRenderingMode. When set, this value is converted to an XRCameraBackgroundRenderingMode and passed to requestedCameraBackgroundRenderingMode if the camera subsystem is non-null.

    Declaration
    public CameraBackgroundRenderingMode requestedBackgroundRenderingMode { get; set; }
    Property Value
    Type Description
    CameraBackgroundRenderingMode

    requestedFacingDirection

    Get or set the requested camera facing direction.

    Declaration
    public CameraFacingDirection requestedFacingDirection { get; set; }
    Property Value
    Type Description
    CameraFacingDirection

    requestedLightEstimation

    Get or set the requested LightEstimation for the camera.

    Declaration
    public LightEstimation requestedLightEstimation { get; set; }
    Property Value
    Type Description
    LightEstimation

    The light estimation mode for the camera.

    Methods

    GetConfigurations(Allocator)

    Get the camera configurations currently supported for the implementation.

    Declaration
    public NativeArray<XRCameraConfiguration> GetConfigurations(Allocator allocator)
    Parameters
    Type Name Description
    Unity.Collections.Allocator allocator

    The allocation strategy to use for the returned data.

    Returns
    Type Description
    Unity.Collections.NativeArray<XRCameraConfiguration>

    The supported camera configurations.

    OnAfterDeserialize()

    Part of the ISerializationCallbackReceiver interface. Invoked after deserialization.

    Declaration
    public void OnAfterDeserialize()
    Implements
    UnityEngine.ISerializationCallbackReceiver.OnAfterDeserialize()

    OnBeforeSerialize()

    Part of the ISerializationCallbackReceiver interface. Invoked before serialization.

    Declaration
    public void OnBeforeSerialize()
    Implements
    UnityEngine.ISerializationCallbackReceiver.OnBeforeSerialize()

    OnBeforeStart()

    Invoked after creating the subsystem and before calling Start on it. The subsystem is not null.

    Declaration
    protected override void OnBeforeStart()
    Overrides
    UnityEngine.XR.ARFoundation.SubsystemLifecycleManager<UnityEngine.XR.ARSubsystems.XRCameraSubsystem, UnityEngine.XR.ARSubsystems.XRCameraSubsystemDescriptor, UnityEngine.XR.ARSubsystems.XRCameraSubsystem.Provider>.OnBeforeStart()

    OnDisable()

    Stops the TSubsystem.

    Declaration
    protected override void OnDisable()
    Overrides
    UnityEngine.XR.ARFoundation.SubsystemLifecycleManager<UnityEngine.XR.ARSubsystems.XRCameraSubsystem, UnityEngine.XR.ARSubsystems.XRCameraSubsystemDescriptor, UnityEngine.XR.ARSubsystems.XRCameraSubsystem.Provider>.OnDisable()

    TryAcquireLatestCpuImage(out XRCpuImage)

    Attempts to acquire the latest camera image. This provides direct access to the raw pixel data, as well as to utilities to convert to RGB and Grayscale formats.

    Declaration
    public bool TryAcquireLatestCpuImage(out XRCpuImage cpuImage)
    Parameters
    Type Name Description
    XRCpuImage cpuImage

    A valid XRCpuImage if this method returns true.

    Returns
    Type Description
    Boolean

    true if the latest camera image was successfully acquired. Otherwise, false.

    Remarks

    The XRCpuImage must be disposed to avoid resource leaks.

    TryGetIntrinsics(out XRCameraIntrinsics)

    Tries to get camera intrinsics. Camera intrinsics refers to properties of a physical camera which might be useful when performing additional computer vision processing on the camera image.

    Declaration
    public bool TryGetIntrinsics(out XRCameraIntrinsics cameraIntrinsics)
    Parameters
    Type Name Description
    XRCameraIntrinsics cameraIntrinsics

    The camera intrinsics to be populated if the camera supports intrinsics.

    Returns
    Type Description
    Boolean

    true if cameraIntrinsics was populated. Otherwise, false.

    Remarks
    Note

    The intrinsics may change each frame. You should call this each frame that you need intrinsics in order to ensure you are using the intrinsics for the current frame.

    TryGetLatestImage(out XRCpuImage)

    Attempts to acquire the latest camera image. This provides direct access to the raw pixel data, as well as to utilities to convert to RGB and Grayscale formats. This method is deprecated. Use TryAcquireLatestCpuImage(out XRCpuImage) instead.

    Declaration
    [Obsolete("Use TryAcquireLatestCpuImage instead. (2020-05-19")]
    public bool TryGetLatestImage(out XRCpuImage cpuImage)
    Parameters
    Type Name Description
    XRCpuImage cpuImage

    A valid XRCpuImage if this method returns true.

    Returns
    Type Description
    Boolean

    true if the latest camera image was successfully acquired. Otherwise, false.

    Remarks

    The XRCpuImage must be disposed to avoid resource leaks.

    Events

    frameReceived

    An event which fires each time a new camera frame is received.

    Declaration
    public event Action<ARCameraFrameEventArgs> frameReceived
    Event Type
    Type Description
    Action<ARCameraFrameEventArgs>
    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