Class VirtualCameraDevice
A device used to control a virtual camera.
Implements
Namespace: Unity.LiveCapture.VirtualCamera
Assembly: Unity.LiveCapture.VirtualCamera.dll
Syntax
[AddComponentMenu("")]
[RequireComponent(typeof(FocusPlaneRenderer))]
[DisallowMultipleComponent]
public class VirtualCameraDevice : CompanionAppDevice<IVirtualCameraClient>, ITimedDataSource
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
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
Declaration
public FrameRate FrameRate { get; }
Property Value
| Type | Description |
|---|---|
| FrameRate |
Id
Declaration
public string Id { get; }
Property Value
| Type | Description |
|---|---|
| string |
IsSynchronized
Declaration
public bool IsSynchronized { get; set; }
Property Value
| Type | Description |
|---|---|
| bool |
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
Declaration
public int? MaxBufferSize { get; }
Property Value
| Type | Description |
|---|---|
| int? |
MinBufferSize
Declaration
public int? MinBufferSize { get; }
Property Value
| Type | Description |
|---|---|
| int? |
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
Declaration
public FrameTime PresentationOffset { get; set; }
Property Value
| Type | Description |
|---|---|
| FrameTime |
Synchronizer
Declaration
public ISynchronizer Synchronizer { get; set; }
Property Value
| Type | Description |
|---|---|
| ISynchronizer |
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. |
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. |
LiveUpdate()
Declaration
public override void LiveUpdate()
OnClientAssigned()
The device calls this method when a new client is assigned.
Declaration
protected override void OnClientAssigned()
OnClientUnassigned()
The device calls this method when the client is unassigned.
Declaration
protected override void OnClientUnassigned()
OnDisable()
This function is called when the behaviour becomes disabled.
Declaration
protected override void OnDisable()
OnEnable()
This function is called when the object becomes enabled and active.
Declaration
protected override void OnEnable()
OnRecordingChanged()
The device calls this method when the recording state has changed.
Declaration
protected override void OnRecordingChanged()
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. |
OnSlateChanged(ISlate)
The device calls this method when the slate has changed.
Declaration
protected override void OnSlateChanged(ISlate slate)
Parameters
| Type | Name | Description |
|---|---|---|
| ISlate | slate | The ISlate that changed. |
OnValidate()
Declaration
protected virtual void OnValidate()
PresentAt(Timecode, FrameRate)
Declaration
public TimedSampleStatus PresentAt(Timecode timecode, FrameRate frameRate)
Parameters
| Type | Name | Description |
|---|---|---|
| Timecode | timecode | |
| FrameRate | frameRate |
Returns
| Type | Description |
|---|---|
| TimedSampleStatus |
TryGetBufferRange(out FrameTime, out FrameTime)
Declaration
public bool TryGetBufferRange(out FrameTime oldestSample, out FrameTime newestSample)
Parameters
| Type | Name | Description |
|---|---|---|
| FrameTime | oldestSample | |
| FrameTime | newestSample |
Returns
| Type | Description |
|---|---|
| bool |
UpdateClient()
Called to send the device state to the client.
Declaration
public override void UpdateClient()
UpdateDevice()
Declaration
public override void UpdateDevice()
Write(ITakeBuilder)
Declaration
public override void Write(ITakeBuilder takeBuilder)
Parameters
| Type | Name | Description |
|---|---|---|
| ITakeBuilder | takeBuilder |