docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class VirtualCameraDevice

    A device used to control a virtual camera.

    Inheritance
    object
    Object
    Component
    Behaviour
    MonoBehaviour
    LiveCaptureDevice
    CompanionAppDevice<IVirtualCameraClient>
    VirtualCameraDevice
    Implements
    ITimedDataSource
    IRegistrable
    Inherited Members
    LiveCaptureDevice.IsRecording
    LiveCaptureDevice.OnStopRecording()
    LiveCaptureDevice.Refresh()
    MonoBehaviour.IsInvoking()
    MonoBehaviour.CancelInvoke()
    MonoBehaviour.Invoke(string, float)
    MonoBehaviour.InvokeRepeating(string, float, float)
    MonoBehaviour.CancelInvoke(string)
    MonoBehaviour.IsInvoking(string)
    MonoBehaviour.StartCoroutine(string)
    MonoBehaviour.StartCoroutine(string, object)
    MonoBehaviour.StartCoroutine(IEnumerator)
    MonoBehaviour.StartCoroutine_Auto(IEnumerator)
    MonoBehaviour.StopCoroutine(IEnumerator)
    MonoBehaviour.StopCoroutine(Coroutine)
    MonoBehaviour.StopCoroutine(string)
    MonoBehaviour.StopAllCoroutines()
    MonoBehaviour.print(object)
    MonoBehaviour.destroyCancellationToken
    MonoBehaviour.useGUILayout
    MonoBehaviour.runInEditMode
    Behaviour.enabled
    Behaviour.isActiveAndEnabled
    Component.GetComponent(Type)
    Component.GetComponent<T>()
    Component.TryGetComponent(Type, out Component)
    Component.TryGetComponent<T>(out T)
    Component.GetComponent(string)
    Component.GetComponentInChildren(Type, bool)
    Component.GetComponentInChildren(Type)
    Component.GetComponentInChildren<T>(bool)
    Component.GetComponentInChildren<T>()
    Component.GetComponentsInChildren(Type, bool)
    Component.GetComponentsInChildren(Type)
    Component.GetComponentsInChildren<T>(bool)
    Component.GetComponentsInChildren<T>(bool, List<T>)
    Component.GetComponentsInChildren<T>()
    Component.GetComponentsInChildren<T>(List<T>)
    Component.GetComponentInParent(Type, bool)
    Component.GetComponentInParent(Type)
    Component.GetComponentInParent<T>(bool)
    Component.GetComponentInParent<T>()
    Component.GetComponentsInParent(Type, bool)
    Component.GetComponentsInParent(Type)
    Component.GetComponentsInParent<T>(bool)
    Component.GetComponentsInParent<T>(bool, List<T>)
    Component.GetComponentsInParent<T>()
    Component.GetComponents(Type)
    Component.GetComponents(Type, List<Component>)
    Component.GetComponents<T>(List<T>)
    Component.GetComponents<T>()
    Component.CompareTag(string)
    Component.SendMessageUpwards(string, object, SendMessageOptions)
    Component.SendMessageUpwards(string, object)
    Component.SendMessageUpwards(string)
    Component.SendMessageUpwards(string, SendMessageOptions)
    Component.SendMessage(string, object)
    Component.SendMessage(string)
    Component.SendMessage(string, object, SendMessageOptions)
    Component.SendMessage(string, SendMessageOptions)
    Component.BroadcastMessage(string, object, SendMessageOptions)
    Component.BroadcastMessage(string, object)
    Component.BroadcastMessage(string)
    Component.BroadcastMessage(string, SendMessageOptions)
    Component.transform
    Component.gameObject
    Component.tag
    Object.GetInstanceID()
    Object.GetHashCode()
    Object.Equals(object)
    Object.Instantiate(Object, Vector3, Quaternion)
    Object.Instantiate(Object, Vector3, Quaternion, Transform)
    Object.Instantiate(Object)
    Object.Instantiate(Object, Transform)
    Object.Instantiate(Object, Transform, bool)
    Object.Instantiate<T>(T)
    Object.Instantiate<T>(T, Vector3, Quaternion)
    Object.Instantiate<T>(T, Vector3, Quaternion, Transform)
    Object.Instantiate<T>(T, Transform)
    Object.Instantiate<T>(T, Transform, bool)
    Object.Destroy(Object, float)
    Object.Destroy(Object)
    Object.DestroyImmediate(Object, bool)
    Object.DestroyImmediate(Object)
    Object.FindObjectsOfType(Type)
    Object.FindObjectsOfType(Type, bool)
    Object.FindObjectsByType(Type, FindObjectsSortMode)
    Object.FindObjectsByType(Type, FindObjectsInactive, FindObjectsSortMode)
    Object.DontDestroyOnLoad(Object)
    Object.DestroyObject(Object, float)
    Object.DestroyObject(Object)
    Object.FindSceneObjectsOfType(Type)
    Object.FindObjectsOfTypeIncludingAssets(Type)
    Object.FindObjectsOfType<T>()
    Object.FindObjectsByType<T>(FindObjectsSortMode)
    Object.FindObjectsOfType<T>(bool)
    Object.FindObjectsByType<T>(FindObjectsInactive, FindObjectsSortMode)
    Object.FindObjectOfType<T>()
    Object.FindObjectOfType<T>(bool)
    Object.FindFirstObjectByType<T>()
    Object.FindAnyObjectByType<T>()
    Object.FindFirstObjectByType<T>(FindObjectsInactive)
    Object.FindAnyObjectByType<T>(FindObjectsInactive)
    Object.FindObjectsOfTypeAll(Type)
    Object.FindObjectOfType(Type)
    Object.FindFirstObjectByType(Type)
    Object.FindAnyObjectByType(Type)
    Object.FindObjectOfType(Type, bool)
    Object.FindFirstObjectByType(Type, FindObjectsInactive)
    Object.FindAnyObjectByType(Type, FindObjectsInactive)
    Object.ToString()
    Object.name
    Object.hideFlags
    Namespace: Unity.LiveCapture.VirtualCamera
    Assembly: Unity.LiveCapture.VirtualCamera.dll
    Syntax
    [RequireComponent(typeof(FocusPlaneRenderer))]
    [CreateDeviceMenuItem("Virtual Camera Device", 0)]
    [HelpURL("https://docs.unity3d.com/Packages/com.unity.live-capture@4.0/manual/ref-component-virtual-camera-device.html")]
    [DisallowMultipleComponent]
    public class VirtualCameraDevice : CompanionAppDevice<IVirtualCameraClient>, ITimedDataSource, IRegistrable
    Remarks

    The virtual camera mimics the experience of using a real camera in a Unity scene. The connected client can control most of the state, such as the camera pose and lens settings, but other features like autofocus need to be computed in the editor as it needs to query the scene. The render from the virtual camera in the editor can be streamed to the client to give visual feedback of the camera state, similar to a camera viewfinder. A VirtualCameraActor and a IVirtualCameraClient must be assigned before the device is useful. The actor is needed to store live or evaluated playback state and affect the scene.

    Properties

    Actor

    Gets the VirtualCameraActor currently assigned to this device.

    Declaration
    public VirtualCameraActor Actor { get; set; }
    Property Value
    Type Description
    VirtualCameraActor

    The assigned actor, or null if none is assigned.

    AnchorEnabled

    Enables or disables anchoring.

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

    AnchorSettings

    The AnchorSettings of the current device.

    Declaration
    public AnchorSettings AnchorSettings { get; set; }
    Property Value
    Type Description
    AnchorSettings

    AnchorTarget

    The target to anchor to.

    Declaration
    public Transform AnchorTarget { get; set; }
    Property Value
    Type Description
    Transform

    BufferSize

    The current buffer size.

    Declaration
    public int BufferSize { get; set; }
    Property Value
    Type Description
    int

    CameraBody

    The CameraBody of the current device.

    Declaration
    public CameraBody CameraBody { get; }
    Property Value
    Type Description
    CameraBody

    FrameRate

    The number of data samples per second.

    Declaration
    public FrameRate FrameRate { get; }
    Property Value
    Type Description
    FrameRate

    Id

    Get the unique identifier for this instance.

    Declaration
    public string Id { get; }
    Property Value
    Type Description
    string
    Remarks

    The ID should not be null or empty, and is expected to remain constant for the life of the instance.

    IsSynchronized

    Signal to the data source whether it is being synchronized via PresentAt(FrameTimeWithRate).

    Declaration
    public bool IsSynchronized { get; set; }
    Property Value
    Type Description
    bool
    Remarks

    When true, the data source should disable its own update mechanism.

    Lens

    The Lens of the current device.

    Declaration
    public Lens Lens { get; set; }
    Property Value
    Type Description
    Lens

    LensAsset

    The LensAsset of the current device.

    Declaration
    public LensAsset LensAsset { get; set; }
    Property Value
    Type Description
    LensAsset

    LensIntrinsics

    The LensIntrinsics of the current device.

    Declaration
    public LensIntrinsics LensIntrinsics { get; }
    Property Value
    Type Description
    LensIntrinsics

    MaxBufferSize

    The maximum size of the sample buffer, if limited.

    Declaration
    public int? MaxBufferSize { get; }
    Property Value
    Type Description
    int?

    MinBufferSize

    The minimum size of the sample buffer, if limited.

    Declaration
    public int? MinBufferSize { get; }
    Property Value
    Type Description
    int?

    Offset

    The time offset applied to sample timecodes, in frames.

    Declaration
    public FrameTime Offset { get; set; }
    Property Value
    Type Description
    FrameTime
    Remarks

    The frame duration corresponds to the FrameRate of this source. This value should typically match the time delay between timecode generation and data sampling.

    Origin

    The position and rotation of the world's origin.

    Declaration
    public Pose Origin { get; }
    Property Value
    Type Description
    Pose

    Pose

    The position and rotation of the current device in world coordinates.

    Declaration
    public Pose Pose { get; }
    Property Value
    Type Description
    Pose

    Synchronizer

    The ISynchronizer controlling this source.

    Declaration
    public ISynchronizer Synchronizer { get; set; }
    Property Value
    Type Description
    ISynchronizer
    Remarks

    In most cases you can simply implement this as an auto-property. The default synchronizer implementation automatically assigns this property when you call AddDataSource(ITimedDataSource).

    Methods

    GetAssetName()

    Gets the name used for the take asset name.

    Declaration
    protected override string GetAssetName()
    Returns
    Type Description
    string

    The name of the asset.

    Overrides
    Unity.LiveCapture.CompanionApp.CompanionAppDevice<Unity.LiveCapture.VirtualCamera.IVirtualCameraClient>.GetAssetName()

    IsReady()

    Indicates whether a device is ready for recording.

    Declaration
    public override bool IsReady()
    Returns
    Type Description
    bool

    true if ready for recording; otherwise, false.

    Overrides
    Unity.LiveCapture.CompanionApp.CompanionAppDevice<Unity.LiveCapture.VirtualCamera.IVirtualCameraClient>.IsReady()

    LiveUpdate()

    Override this method to update the device during live mode.

    Declaration
    protected override void LiveUpdate()
    Overrides
    LiveCaptureDevice.LiveUpdate()
    Remarks

    This method is called after the animation system execution and before the script's LateUpdate.

    OnClientAssigned()

    The device calls this method when a new client is assigned.

    Declaration
    protected override void OnClientAssigned()
    Overrides
    Unity.LiveCapture.CompanionApp.CompanionAppDevice<Unity.LiveCapture.VirtualCamera.IVirtualCameraClient>.OnClientAssigned()

    OnClientUnassigned()

    The device calls this method when the client is unassigned.

    Declaration
    protected override void OnClientUnassigned()
    Overrides
    Unity.LiveCapture.CompanionApp.CompanionAppDevice<Unity.LiveCapture.VirtualCamera.IVirtualCameraClient>.OnClientUnassigned()

    OnDisable()

    This function is called when the behaviour becomes disabled.

    Declaration
    protected override void OnDisable()
    Overrides
    Unity.LiveCapture.CompanionApp.CompanionAppDevice<Unity.LiveCapture.VirtualCamera.IVirtualCameraClient>.OnDisable()

    OnEnable()

    This function is called when the object becomes enabled and active.

    Declaration
    protected override void OnEnable()
    Overrides
    Unity.LiveCapture.CompanionApp.CompanionAppDevice<Unity.LiveCapture.VirtualCamera.IVirtualCameraClient>.OnEnable()

    OnRegisterLiveProperties(IPropertyPreviewer)

    The device calls this method when a live performance starts and properties are about to change.

    Declaration
    protected override void OnRegisterLiveProperties(IPropertyPreviewer previewer)
    Parameters
    Type Name Description
    IPropertyPreviewer previewer

    The IPropertyPreviewer to use to register live properties.

    Overrides
    Unity.LiveCapture.CompanionApp.CompanionAppDevice<Unity.LiveCapture.VirtualCamera.IVirtualCameraClient>.OnRegisterLiveProperties(Unity.LiveCapture.IPropertyPreviewer)

    OnShotChanged(Shot?)

    The device calls this method when the shot has changed.

    Declaration
    protected override void OnShotChanged(Shot? shot)
    Parameters
    Type Name Description
    Shot? shot

    The Shot that changed.

    Overrides
    Unity.LiveCapture.CompanionApp.CompanionAppDevice<Unity.LiveCapture.VirtualCamera.IVirtualCameraClient>.OnShotChanged(Unity.LiveCapture.Shot?)

    OnStartRecording()

    The device calls this method when a new recording started.

    Declaration
    protected override void OnStartRecording()
    Overrides
    Unity.LiveCapture.CompanionApp.CompanionAppDevice<Unity.LiveCapture.VirtualCamera.IVirtualCameraClient>.OnStartRecording()

    PresentAt(FrameTimeWithRate)

    Applies the data for a given timecode to the scene.

    Declaration
    public TimedSampleStatus PresentAt(FrameTimeWithRate presentTime)
    Parameters
    Type Name Description
    FrameTimeWithRate presentTime

    The timecode to present.

    Returns
    Type Description
    TimedSampleStatus

    A status representing the ability of the source to present at the requested timecode.

    TryGetBufferRange(out FrameTime, out FrameTime)

    Gets the frame time of the newest and oldest samples buffered by the data source.

    Declaration
    public bool TryGetBufferRange(out FrameTime oldestSample, out FrameTime newestSample)
    Parameters
    Type Name Description
    FrameTime oldestSample

    The frame time of the oldest buffered sample, or default if there are no buffered samples.

    FrameTime newestSample

    The frame time of the newest buffered sample, or default if there are no buffered samples.

    Returns
    Type Description
    bool

    true if there are any buffered samples; otherwise, false.

    Remarks

    The frame duration corresponds to the FrameRate of this source.

    UpdateClient()

    Called to send the device state to the client.

    Declaration
    public override void UpdateClient()
    Overrides
    Unity.LiveCapture.CompanionApp.CompanionAppDevice<Unity.LiveCapture.VirtualCamera.IVirtualCameraClient>.UpdateClient()

    UpdateDevice()

    Updates the internal state of the device.

    Declaration
    protected override void UpdateDevice()
    Overrides
    LiveCaptureDevice.UpdateDevice()

    Write(ITakeBuilder)

    Stores the recording into a take using a ITakeBuilder.

    Declaration
    public override void Write(ITakeBuilder takeBuilder)
    Parameters
    Type Name Description
    ITakeBuilder takeBuilder

    The take builder object.

    Overrides
    LiveCaptureDevice.Write(ITakeBuilder)

    Implements

    ITimedDataSource
    IRegistrable
    In This Article
    Back to top
    Copyright © 2025 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)