docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class CinemachineMixingCamera

    CinemachineMixingCamera is a "manager camera" that takes on the state of the weighted average of the states of its child virtual cameras.

    A fixed number of slots are made available for cameras, rather than a dynamic array. We do it this way in order to support weight animation from the Timeline. Timeline cannot animate array elements.

    Inheritance
    object
    Object
    Component
    Behaviour
    MonoBehaviour
    CinemachineVirtualCameraBase
    CinemachineCameraManagerBase
    CinemachineMixingCamera
    Implements
    ICinemachineMixer
    ICinemachineCamera
    Inherited Members
    CinemachineCameraManagerBase.DefaultTarget
    CinemachineCameraManagerBase.DefaultBlend
    CinemachineCameraManagerBase.CustomBlends
    CinemachineCameraManagerBase.OnEnable()
    CinemachineCameraManagerBase.OnDisable()
    CinemachineCameraManagerBase.ChildCameras
    CinemachineCameraManagerBase.PreviousStateIsValid
    CinemachineCameraManagerBase.IsBlending
    CinemachineCameraManagerBase.ActiveBlend
    CinemachineCameraManagerBase.LiveChild
    CinemachineCameraManagerBase.LookAt
    CinemachineCameraManagerBase.Follow
    CinemachineCameraManagerBase.LookupBlend(ICinemachineCamera, ICinemachineCamera)
    CinemachineCameraManagerBase.OnTargetObjectWarped(Transform, Vector3)
    CinemachineCameraManagerBase.ForceCameraPosition(Vector3, Quaternion)
    CinemachineCameraManagerBase.InvalidateCameraCache()
    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.PerformLegacyUpgrade(int)
    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 Mixing Camera")]
    [HelpURL("https://docs.unity3d.com/Packages/com.unity.cinemachine@3.1/manual/CinemachineMixingCamera.html")]
    public class CinemachineMixingCamera : CinemachineCameraManagerBase, ICinemachineMixer, ICinemachineCamera

    Fields

    MaxCameras

    The maximum number of tracked cameras. If you want to add more cameras, do it here in the source code, and be sure to add the extra member variables and to make the appropriate changes in GetWeight() and SetWeight(). The inspector will figure itself out based on this value.

    Declaration
    public const int MaxCameras = 8
    Field Value
    Type Description
    int

    Weight0

    Weight of the first tracked camera

    Declaration
    [Tooltip("The weight of the first tracked camera")]
    [FormerlySerializedAs("m_Weight0")]
    public float Weight0
    Field Value
    Type Description
    float

    Weight1

    Weight of the second tracked camera

    Declaration
    [Tooltip("The weight of the second tracked camera")]
    [FormerlySerializedAs("m_Weight1")]
    public float Weight1
    Field Value
    Type Description
    float

    Weight2

    Weight of the third tracked camera

    Declaration
    [Tooltip("The weight of the third tracked camera")]
    [FormerlySerializedAs("m_Weight2")]
    public float Weight2
    Field Value
    Type Description
    float

    Weight3

    Weight of the fourth tracked camera

    Declaration
    [Tooltip("The weight of the fourth tracked camera")]
    [FormerlySerializedAs("m_Weight3")]
    public float Weight3
    Field Value
    Type Description
    float

    Weight4

    Weight of the fifth tracked camera

    Declaration
    [Tooltip("The weight of the fifth tracked camera")]
    [FormerlySerializedAs("m_Weight4")]
    public float Weight4
    Field Value
    Type Description
    float

    Weight5

    Weight of the sixth tracked camera

    Declaration
    [Tooltip("The weight of the sixth tracked camera")]
    [FormerlySerializedAs("m_Weight5")]
    public float Weight5
    Field Value
    Type Description
    float

    Weight6

    Weight of the seventh tracked camera

    Declaration
    [Tooltip("The weight of the seventh tracked camera")]
    [FormerlySerializedAs("m_Weight6")]
    public float Weight6
    Field Value
    Type Description
    float

    Weight7

    Weight of the eighth tracked camera

    Declaration
    [Tooltip("The weight of the eighth tracked camera")]
    [FormerlySerializedAs("m_Weight7")]
    public float Weight7
    Field Value
    Type Description
    float

    Properties

    Description

    Gets a brief debug description of this virtual camera, for use when displaying debug info

    Declaration
    public override string Description { get; }
    Property Value
    Type Description
    string
    Overrides
    CinemachineCameraManagerBase.Description

    State

    The CameraState object holds all of the information necessary to position the Unity camera. It is the output of this class.

    Declaration
    public override CameraState State { get; }
    Property Value
    Type Description
    CameraState
    Overrides
    CinemachineCameraManagerBase.State

    Methods

    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)

    GetWeight(int)

    Get the weight of the child at an index.

    Declaration
    public float GetWeight(int index)
    Parameters
    Type Name Description
    int index

    The child index. Only immediate CinemachineVirtualCameraBase children are counted.

    Returns
    Type Description
    float

    The weight of the camera. Valid only if camera is active and enabled.

    GetWeight(CinemachineVirtualCameraBase)

    Get the weight of the child CinemachineVirtualCameraBase.

    Declaration
    public float GetWeight(CinemachineVirtualCameraBase vcam)
    Parameters
    Type Name Description
    CinemachineVirtualCameraBase vcam

    The child camera.

    Returns
    Type Description
    float

    The weight of the camera. Valid only if camera is active and enabled.

    InternalUpdateCameraState(Vector3, float)

    Internal use only. Do not call this method. 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.

    Declaration
    public override void InternalUpdateCameraState(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)

    Overrides
    CinemachineCameraManagerBase.InternalUpdateCameraState(Vector3, float)

    IsLiveChild(ICinemachineCamera, bool)

    Check whether the cam is a live child of this camera.

    Declaration
    public override bool IsLiveChild(ICinemachineCamera vcam, bool dominantChildOnly = false)
    Parameters
    Type Name Description
    ICinemachineCamera vcam
    bool dominantChildOnly

    If true, will only return true if this vcam is the dominant live child

    Returns
    Type Description
    bool

    True if the vcam is currently actively influencing the state of this vcam

    Overrides
    CinemachineCameraManagerBase.IsLiveChild(ICinemachineCamera, bool)

    OnTransitionFromCamera(ICinemachineCamera, Vector3, float)

    Notification that this virtual camera is going live.

    Declaration
    public override void OnTransitionFromCamera(ICinemachineCamera fromCam, Vector3 worldUp, float deltaTime)
    Parameters
    Type Name Description
    ICinemachineCamera fromCam

    The camera being deactivated. May be null.

    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)

    Overrides
    CinemachineCameraManagerBase.OnTransitionFromCamera(ICinemachineCamera, Vector3, float)

    Reset()

    Reset the component to default values.

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

    SetWeight(int, float)

    Set the weight of the child at an index.

    Declaration
    public void SetWeight(int index, float w)
    Parameters
    Type Name Description
    int index

    The child index. Only immediate CinemachineVirtualCameraBase children are counted.

    float w

    The weight to set. Can be any non-negative number.

    SetWeight(CinemachineVirtualCameraBase, float)

    Set the weight of the child CinemachineVirtualCameraBase.

    Declaration
    public void SetWeight(CinemachineVirtualCameraBase vcam, float w)
    Parameters
    Type Name Description
    CinemachineVirtualCameraBase vcam

    The child camera.

    float w

    The weight to set. Can be any non-negative number.

    UpdateCameraCache()

    Rebuild the camera cache if it's been invalidated

    Declaration
    protected override bool UpdateCameraCache()
    Returns
    Type Description
    bool

    True if a cache rebuild was performed, false if cache is up to date.

    Overrides
    CinemachineCameraManagerBase.UpdateCameraCache()

    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)