docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class CinemachineStateDrivenCamera

    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.

    Inheritance
    object
    Object
    Component
    Behaviour
    MonoBehaviour
    CinemachineVirtualCameraBase
    CinemachineCameraManagerBase
    CinemachineStateDrivenCamera
    Implements
    ICinemachineMixer
    ICinemachineCamera
    Inherited Members
    CinemachineCameraManagerBase.DefaultTarget
    CinemachineCameraManagerBase.DefaultBlend
    CinemachineCameraManagerBase.CustomBlends
    CinemachineCameraManagerBase.OnEnable()
    CinemachineCameraManagerBase.OnDisable()
    CinemachineCameraManagerBase.Description
    CinemachineCameraManagerBase.State
    CinemachineCameraManagerBase.IsLiveChild(ICinemachineCamera, bool)
    CinemachineCameraManagerBase.ChildCameras
    CinemachineCameraManagerBase.PreviousStateIsValid
    CinemachineCameraManagerBase.IsBlending
    CinemachineCameraManagerBase.ActiveBlend
    CinemachineCameraManagerBase.LiveChild
    CinemachineCameraManagerBase.LookAt
    CinemachineCameraManagerBase.Follow
    CinemachineCameraManagerBase.InternalUpdateCameraState(Vector3, float)
    CinemachineCameraManagerBase.LookupBlend(ICinemachineCamera, ICinemachineCamera)
    CinemachineCameraManagerBase.OnTargetObjectWarped(Transform, Vector3)
    CinemachineCameraManagerBase.ForceCameraPosition(Vector3, Quaternion)
    CinemachineCameraManagerBase.OnTransitionFromCamera(ICinemachineCamera, Vector3, float)
    CinemachineCameraManagerBase.InvalidateCameraCache()
    CinemachineCameraManagerBase.UpdateCameraCache()
    CinemachineCameraManagerBase.OnTransformChildrenChanged()
    CinemachineCameraManagerBase.SetLiveChild(ICinemachineCamera, Vector3, float)
    CinemachineCameraManagerBase.ResetLiveChild()
    CinemachineCameraManagerBase.FinalizeCameraState(float)
    CinemachineVirtualCameraBase.Priority
    CinemachineVirtualCameraBase.OutputChannel
    CinemachineVirtualCameraBase.IsDprecated
    CinemachineVirtualCameraBase.FollowTargetAttachment
    CinemachineVirtualCameraBase.LookAtTargetAttachment
    CinemachineVirtualCameraBase.StandbyUpdate
    CinemachineVirtualCameraBase.GetMaxDampTime()
    CinemachineVirtualCameraBase.DetachedFollowTargetDamp(float, float, float)
    CinemachineVirtualCameraBase.DetachedFollowTargetDamp(Vector3, Vector3, float)
    CinemachineVirtualCameraBase.DetachedFollowTargetDamp(Vector3, float, float)
    CinemachineVirtualCameraBase.DetachedLookAtTargetDamp(float, float, float)
    CinemachineVirtualCameraBase.DetachedLookAtTargetDamp(Vector3, Vector3, float)
    CinemachineVirtualCameraBase.DetachedLookAtTargetDamp(Vector3, float, float)
    CinemachineVirtualCameraBase.InvokePostPipelineStageCallback(CinemachineVirtualCameraBase, CinemachineCore.Stage, ref CameraState, float)
    CinemachineVirtualCameraBase.InvokePrePipelineMutateCameraStateCallback(CinemachineVirtualCameraBase, ref CameraState, float)
    CinemachineVirtualCameraBase.InvokeOnTransitionInExtensions(ICinemachineCamera, Vector3, float)
    CinemachineVirtualCameraBase.Name
    CinemachineVirtualCameraBase.IsValid
    CinemachineVirtualCameraBase.ParentCamera
    CinemachineVirtualCameraBase.UpdateCameraState(Vector3, float)
    CinemachineVirtualCameraBase.OnCameraActivated(ICinemachineCamera.ActivationEventParams)
    CinemachineVirtualCameraBase.OnTransformParentChanged()
    CinemachineVirtualCameraBase.OnDestroy()
    CinemachineVirtualCameraBase.Start()
    CinemachineVirtualCameraBase.Update()
    CinemachineVirtualCameraBase.ResolveLookAt(Transform)
    CinemachineVirtualCameraBase.ResolveFollow(Transform)
    CinemachineVirtualCameraBase.MoveToTopOfPrioritySubqueue()
    CinemachineVirtualCameraBase.Prioritize()
    CinemachineVirtualCameraBase.PullStateFromVirtualCamera(Vector3, ref LensSettings)
    CinemachineVirtualCameraBase.FollowTargetChanged
    CinemachineVirtualCameraBase.LookAtTargetChanged
    CinemachineVirtualCameraBase.UpdateTargetCache()
    CinemachineVirtualCameraBase.FollowTargetAsGroup
    CinemachineVirtualCameraBase.FollowTargetAsVcam
    CinemachineVirtualCameraBase.LookAtTargetAsGroup
    CinemachineVirtualCameraBase.LookAtTargetAsVcam
    CinemachineVirtualCameraBase.GetCinemachineComponent(CinemachineCore.Stage)
    CinemachineVirtualCameraBase.IsLive
    CinemachineVirtualCameraBase.IsParticipatingInBlend()
    CinemachineVirtualCameraBase.CancelDamping(bool)
    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.GetComponentIndex()
    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.InstantiateAsync<T>(T)
    Object.InstantiateAsync<T>(T, Transform)
    Object.InstantiateAsync<T>(T, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, Transform, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, int)
    Object.InstantiateAsync<T>(T, int, Transform)
    Object.InstantiateAsync<T>(T, int, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, int, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>)
    Object.InstantiateAsync<T>(T, int, Transform, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, int, Transform, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>)
    Object.InstantiateAsync<T>(T, InstantiateParameters)
    Object.InstantiateAsync<T>(T, int, InstantiateParameters)
    Object.InstantiateAsync<T>(T, Vector3, Quaternion, InstantiateParameters)
    Object.InstantiateAsync<T>(T, int, Vector3, Quaternion, InstantiateParameters)
    Object.InstantiateAsync<T>(T, int, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>, InstantiateParameters)
    Object.Instantiate(Object, Vector3, Quaternion)
    Object.Instantiate(Object, Vector3, Quaternion, Transform)
    Object.Instantiate(Object)
    Object.Instantiate(Object, Scene)
    Object.Instantiate<T>(T, InstantiateParameters)
    Object.Instantiate<T>(T, Vector3, Quaternion, InstantiateParameters)
    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
    object.Equals(object, object)
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    Namespace: Unity.Cinemachine
    Assembly: Unity.Cinemachine.dll
    Syntax
    [DisallowMultipleComponent]
    [ExecuteAlways]
    [ExcludeFromPreset]
    [AddComponentMenu("Cinemachine/Cinemachine State Driven Camera")]
    [HelpURL("https://docs.unity3d.com/Packages/com.unity.cinemachine@3.1/manual/CinemachineStateDrivenCamera.html")]
    public class CinemachineStateDrivenCamera : CinemachineCameraManagerBase, ICinemachineMixer, ICinemachineCamera

    Fields

    AnimatedTarget

    The state machine whose state changes will drive this camera's choice of active child

    Declaration
    [Space]
    [Tooltip("The state machine whose state changes will drive this camera's choice of active child")]
    [FormerlySerializedAs("m_AnimatedTarget")]
    public Animator AnimatedTarget
    Field Value
    Type Description
    Animator

    Instructions

    The set of instructions associating virtual cameras with states. These instructions are used to choose the live child at any given moment

    Declaration
    [Tooltip("The set of instructions associating cameras with states.  These instructions are used to choose the live child at any given moment")]
    [FormerlySerializedAs("m_Instructions")]
    public CinemachineStateDrivenCamera.Instruction[] Instructions
    Field Value
    Type Description
    Instruction[]

    LayerIndex

    Which layer in the target FSM to observe

    Declaration
    [Tooltip("Which layer in the target state machine to observe")]
    [FormerlySerializedAs("m_LayerIndex")]
    public int LayerIndex
    Field Value
    Type Description
    int

    Methods

    CancelWait()

    Call this to cancel the current wait time for the pending instruction and activate the pending instruction immediately.

    Declaration
    public void CancelWait()

    ChooseCurrentCamera(Vector3, float)

    Choose the appropriate current camera from among the ChildCameras, based on current state. If the returned camera is different from the current camera, an appropriate transition will be made.

    Declaration
    protected override CinemachineVirtualCameraBase ChooseCurrentCamera(Vector3 worldUp, float deltaTime)
    Parameters
    Type Name Description
    Vector3 worldUp

    Default world Up, set by the CinemachineBrain

    float deltaTime

    Delta time for time-based effects (ignore if less than or equal to 0)

    Returns
    Type Description
    CinemachineVirtualCameraBase

    The current child camera that should be active. Must be present in ChildCameras.

    Overrides
    CinemachineCameraManagerBase.ChooseCurrentCamera(Vector3, float)

    PerformLegacyUpgrade(int)

    Override this to handle any upgrades necessitated by a streaming version change. Note that since this method is not called from the main thread, there are many things it cannot do, including checking a unity object for null.

    Declaration
    protected override void PerformLegacyUpgrade(int streamedVersion)
    Parameters
    Type Name Description
    int streamedVersion

    The version that was streamed

    Overrides
    CinemachineVirtualCameraBase.PerformLegacyUpgrade(int)

    Reset()

    Reset the component to default values.

    Declaration
    protected override void Reset()
    Overrides
    CinemachineCameraManagerBase.Reset()

    Implements

    ICinemachineMixer
    ICinemachineCamera

    Extension Methods

    CinemachineInputProviderExtensions.GetInputAxisProvider(CinemachineVirtualCameraBase)
    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)