Cinemachine
![]() | CinemachineStateDrivenCamera Class |
This is a virtual camera "manager" that owns and manages a collection
of child Virtual Cameras. These child vcams are mapped to individual states in
an animation state machine, allowing you to associate specific vcams to specific
animation states. When that state is active in the state machine, then the
associated camera will be activated.
You can define custom blends and transitions between child cameras.
In order to use this behaviour, you must have an animated target (i.e. an object
animated with a state machine) to drive the behaviour.

SystemObject Object
Component
Behaviour
MonoBehaviour
CinemachineCinemachineVirtualCameraBase
CinemachineCinemachineStateDrivenCamera
Component
Behaviour
MonoBehaviour
CinemachineCinemachineVirtualCameraBase
CinemachineCinemachineStateDrivenCamera
Namespace: Cinemachine
Assembly: Cinemachine (in Cinemachine.dll) Version: 2.0.0.0 (2.0.0.0)

[DocumentationSortingAttribute(13f, DocumentationSortingAttributeLevel.UserRef)] [ExecuteInEditMode] [DisallowMultipleComponent] [AddComponentMenu("Cinemachine/CinemachineStateDrivenCamera")] public class CinemachineStateDrivenCamera : CinemachineVirtualCameraBase
Cinemachine.CinemachineStateDrivenCamera = function(); Type.createClass( 'Cinemachine.CinemachineStateDrivenCamera', Cinemachine.CinemachineVirtualCameraBase);
The CinemachineStateDrivenCamera type exposes the following members.

Name | Description | |
---|---|---|
![]() | ChildCameras | The list of child cameras. These are just the immediate children in the hierarchy. |
![]() | Description | Gets a brief debug description of this virtual camera, for use when displayiong debug info (Overrides CinemachineVirtualCameraBaseDescription.) |
![]() | Follow | Get the current Follow target. Returns parent's Follow if parent
is non-null and no specific Follow defined for this camera (Overrides CinemachineVirtualCameraBaseFollow.) |
![]() | IsBlending | Is there a blend in progress? |
![]() | LiveChild | Get the current "best" child virtual camera, that would be chosen
if the State Driven Camera were active. |
![]() | LiveChildOrSelf | Return the live child. (Overrides CinemachineVirtualCameraBaseLiveChildOrSelf.) |
![]() | LookAt | Get the current LookAt target. Returns parent's LookAt if parent
is non-null and no specific LookAt defined for this camera (Overrides CinemachineVirtualCameraBaseLookAt.) |
![]() | Name | Get the name of the Virtual Camera. Base implementation
returns the owner GameObject's name. (Inherited from CinemachineVirtualCameraBase.) |
![]() | ParentCamera | Support for meta-virtual-cameras. This is the situation where a
virtual camera is in fact the public face of a private army of virtual cameras, which
it manages on its own. This method gets the VirtualCamera owner, if any.
Private armies are implemented as Transform children of the parent vcam. (Inherited from CinemachineVirtualCameraBase.) |
![]() | PreviousStateIsValid | Set this to force the next update to ignore deltaTime and reset itself (Inherited from CinemachineVirtualCameraBase.) |
![]() | Priority | Get the Priority of the virtual camera. This determines its placement
in the CinemachineCore's queue of eligible shots. (Inherited from CinemachineVirtualCameraBase.) |
![]() | State | The State of the current live child (Overrides CinemachineVirtualCameraBaseState.) |
![]() | ValidatingStreamVersion | Version that was last streamed, for upgrading legacy (Inherited from CinemachineVirtualCameraBase.) |
![]() | VirtualCameraGameObject | The GameObject owner of the Virtual Camera behaviour. (Inherited from CinemachineVirtualCameraBase.) |

Name | Description | |
---|---|---|
![]() | AddPostPipelineStageHook |
A delegate to hook into the state calculation pipeline.
This will be called after each pipeline stage, to allow others to hook into the pipeline.
See CinemachineCore.Stage.
(Inherited from CinemachineVirtualCameraBase.) |
![]() ![]() | CreateFakeHashName | API for the inspector editor. Animation module does not have hashes
for state parents, so we have to invent them in order to implement nested state
handling |
![]() | InvokePostPipelineStageCallback |
Invokes the PostPipelineStageDelegate for this camera, and up the hierarchy for all
parent cameras (if any).
(Inherited from CinemachineVirtualCameraBase.) |
![]() | IsLiveChild | Check whether the vcam a live child of this camera. (Overrides CinemachineVirtualCameraBaseIsLiveChild(ICinemachineCamera).) |
![]() | MoveToTopOfPrioritySubqueue | When multiple virtual cameras have the highest priority, there is
sometimes the need to push one to the top, making it the current Live camera if
it shares the highest priority in the queue with its peers.
This happens automatically when a
new vcam is enabled: the most recent one goes to the top of the priority subqueue.
Use this method to push a vcam to the top of its priority peers.
If it and its peers share the highest priority, then this vcam will become Live. (Inherited from CinemachineVirtualCameraBase.) |
![]() | OnDestroy | Base class implementation removes the virtual camera from the priority queue. (Inherited from CinemachineVirtualCameraBase.) |
![]() | OnDisable | Base class implementation makes sure the priority queue remains up-to-date. (Inherited from CinemachineVirtualCameraBase.) |
![]() | OnEnable | Makes sure the internal child cache is up to date (Overrides CinemachineVirtualCameraBaseOnEnable.) |
![]() | OnTransformChildrenChanged | Makes sure the internal child cache is up to date |
![]() | OnTransformParentChanged | Base class implementation makes sure the priority queue remains up-to-date. (Inherited from CinemachineVirtualCameraBase.) |
![]() | OnTransitionFromCamera | Notification that this virtual camera is going live.
Base class implementationmust be called by any overridden method. (Inherited from CinemachineVirtualCameraBase.) |
![]() | OnValidate | Enforce bounds for fields, when changed in inspector.
Call base class implementation at the beginning of overridden method.
After base method is called, ValidatingStreamVersion will be valid. (Inherited from CinemachineVirtualCameraBase.) |
![]() | PreUpdateChildCameras |
This is called prior to the updating of the vcam's child cameras,
in order to allow the parent to prepare its children.
If the children are updating on FixedUpdate, then this will not necessarily be called
prior to every FixedUpdate, but it might be called on LateUpdate instead.
Base class implementation does nothing.
(Inherited from CinemachineVirtualCameraBase.) |
![]() | RemovePostPipelineStageHook | Remove a Pipeline stage hook callback.
Make sure it is removed from all the children. (Overrides CinemachineVirtualCameraBaseRemovePostPipelineStageHook(CinemachineVirtualCameraBaseOnPostPipelineStageDelegate).) |
![]() | ResolveFollow | Returns this vcam's Follow target, or if that is null, will retrun
the parent vcam's Follow target. (Inherited from CinemachineVirtualCameraBase.) |
![]() | ResolveLookAt | Returns this vcam's LookAt target, or if that is null, will retrun
the parent vcam's LookAt target. (Inherited from CinemachineVirtualCameraBase.) |
![]() | Start | Base class implementation does nothing. (Inherited from CinemachineVirtualCameraBase.) |
![]() | Update | Base class implementation makes sure the priority queue remains up-to-date. (Inherited from CinemachineVirtualCameraBase.) |
![]() | UpdateCameraState | Called by CinemachineCore at designated update time
so the vcam can position itself and track its targets. This implementation
updates all the children, chooses the best one, and implements any required blending. (Overrides CinemachineVirtualCameraBaseUpdateCameraState(Vector3, Single).) |
![]() | ValidateInstructions | Internal API for the inspector editor. |

Name | Description | |
---|---|---|
![]() | CinemachineGUIDebuggerCallback | This is deprecated. It is here to support the soon-to-be-removed
Cinemachine Debugger in the Editor. (Inherited from CinemachineVirtualCameraBase.) |
![]() | m_AnimatedTarget | The state machine whose state changes will drive this camera's choice of active child |
![]() | m_CustomBlends |
This is the asset which contains custom settings for specific child blends.
|
![]() | m_DefaultBlend |
The blend which is used if you don't explicitly define a blend between two Virtual Camera children.
|
![]() | m_EnableAllChildCameras | Force all child cameras to be enabled. This is useful if animating them in Timeline, but consumes extra resources. |
![]() | m_ExcludedPropertiesInInspector | Inspector control - Use for hiding sections of the Inspector UI. (Inherited from CinemachineVirtualCameraBase.) |
![]() | m_Follow | Default object for the camera children wants to move with (the body target), if not specified in a child rig. May be empty |
![]() | m_Instructions | The set of instructions associating virtual cameras with states.
These instructions are used to choose the live child at any given moment |
![]() | m_LayerIndex | Which layer in the target FSM to observe |
![]() | m_LockStageInInspector | Inspector control - Use for enabling sections of the Inspector UI. (Inherited from CinemachineVirtualCameraBase.) |
![]() | m_LookAt | Default object for the camera children to look at (the aim target), if not specified in a child rig. May be empty |
![]() | m_Priority | The priority will determine which camera becomes active based on the
state of other cameras and this camera. Higher numbers have greater priority.
(Inherited from CinemachineVirtualCameraBase.) |
![]() | m_ShowDebugText | When enabled, the current camera and blend will be indicated in the game window, for debugging |
![]() | OnPostPipelineStage |
A delegate to hook into the state calculation pipeline.
Implementaion must be sure to call this after each pipeline stage, to allow
other services to hook into the pipeline.
See CinemachineCore.Stage.
(Inherited from CinemachineVirtualCameraBase.) |
