docs.unity3d.com
    Show / Hide Table of Contents

    Class VirtualCameraDevice

    A device used to control a virtual camera.

    Inheritance
    Object
    LiveCaptureDevice
    Unity.LiveCapture.CompanionApp.CompanionAppDevice<IVirtualCameraClient>
    VirtualCameraDevice
    Inherited Members
    LiveCaptureDevice.GetTakeRecorder()
    LiveCaptureDevice.OnDestroy()
    LiveCaptureDevice.IsRecording()
    LiveCaptureDevice.StartRecording()
    LiveCaptureDevice.StopRecording()
    LiveCaptureDevice.Refresh()
    Namespace: Unity.LiveCapture.VirtualCamera
    Syntax
    public class VirtualCameraDevice : CompanionAppDevice<IVirtualCameraClient>, ICompanionAppDevice, 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.

    BufferSize

    Gets or sets the current buffer size.

    Declaration
    public int BufferSize { get; set; }
    Property Value
    Type Description
    Int32
    Implements
    ITimedDataSource.BufferSize

    CameraBody

    The CameraBody of the current device.

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

    Id

    Get the unique identifier for this instance.

    Declaration
    public string Id { get; }
    Property Value
    Type Description
    String
    Implements
    IRegistrable.Id
    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(Timecode, FrameRate).

    Declaration
    public bool IsSynchronized { get; set; }
    Property Value
    Type Description
    Boolean
    Implements
    ITimedDataSource.IsSynchronized
    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

    Get the maximum size of the sample buffer, if limited.

    Declaration
    public int? MaxBufferSize { get; }
    Property Value
    Type Description
    Nullable<Int32>
    Implements
    ITimedDataSource.MaxBufferSize

    MinBufferSize

    Get the minimum size of the sample buffer, if limited.

    Declaration
    public int? MinBufferSize { get; }
    Property Value
    Type Description
    Nullable<Int32>
    Implements
    ITimedDataSource.MinBufferSize

    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

    PresentationOffset

    Apply this constant frame offset when invoking PresentAt(Timecode, FrameRate).

    Declaration
    public FrameTime PresentationOffset { get; set; }
    Property Value
    Type Description
    FrameTime
    Implements
    ITimedDataSource.PresentationOffset
    Remarks

    Set this to non-zero if the captured data's timecodes are "off" from the true values. For example, if you determined that the samples and timecodes as mismatched such that each sample lags its timecode by 2 frames, you would set this property to new FrameTime(2).

    Synchronizer

    Gets or sets the ISynchronizer controlling this source.

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

    In most cases you can simply implement this as an auto-property. The default Unity.LiveCapture.Synchronizer will automatically assign this property when you call Unity.LiveCapture.Synchronizer.AddDataSource(Unity.LiveCapture.ITimedDataSource).

    Methods

    GetAssetName()

    Declaration
    protected override string GetAssetName()
    Returns
    Type Description
    String
    Overrides
    Unity.LiveCapture.CompanionApp.CompanionAppDevice<Unity.LiveCapture.VirtualCamera.IVirtualCameraClient>.GetAssetName()

    IsReady()

    Declaration
    public override bool IsReady()
    Returns
    Type Description
    Boolean
    Overrides
    Unity.LiveCapture.CompanionApp.CompanionAppDevice<Unity.LiveCapture.VirtualCamera.IVirtualCameraClient>.IsReady()

    LiveUpdate()

    Override this method to update the device during live mode.

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

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

    OnClientAssigned()

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

    OnClientUnassigned()

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

    OnDisable()

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

    OnEnable()

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

    OnRecordingChanged()

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

    OnSlateChanged(ISlate)

    Declaration
    protected override void OnSlateChanged(ISlate slate)
    Parameters
    Type Name Description
    ISlate slate
    Overrides
    Unity.LiveCapture.CompanionApp.CompanionAppDevice<Unity.LiveCapture.VirtualCamera.IVirtualCameraClient>.OnSlateChanged(Unity.LiveCapture.ISlate)

    OnValidate()

    Declaration
    protected virtual void OnValidate()

    PresentAt(Timecode, FrameRate)

    Set the currently active timecode for presentation.

    Declaration
    public TimedSampleStatus PresentAt(Timecode timecode, FrameRate frameRate)
    Parameters
    Type Name Description
    Timecode timecode

    The timecode that we wish to present

    FrameRate frameRate

    The underlying framerate of the timecode value

    Returns
    Type Description
    TimedSampleStatus

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

    Implements
    ITimedDataSource.PresentAt(Timecode, FrameRate)

    UpdateClient()

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

    UpdateDevice()

    Updates the internal state of the device.

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

    Explicit Interface Implementations

    IRegistrable.FriendlyName

    Get a human-readable name for the instance.

    Declaration
    string IRegistrable.FriendlyName { get; }
    Returns
    Type Description
    String
    Implements
    IRegistrable.FriendlyName
    Back to top
    Terms of use
    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