docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class CinemachineExtension

    Base class for a CinemachineCamera extension module. Hooks into the Cinemachine Pipeline. Use this to add extra processing to the vcam, modifying its generated state

    Inheritance
    object
    Object
    Component
    Behaviour
    MonoBehaviour
    CinemachineExtension
    CinemachineAutoFocus
    CinemachineCameraOffset
    CinemachineCollider
    CinemachineConfiner
    CinemachineConfiner2D
    CinemachineConfiner3D
    CinemachineDecollider
    CinemachineDeoccluder
    CinemachineFollowZoom
    CinemachineFreeLookModifier
    CinemachineGroupFraming
    CinemachineImpulseListener
    CinemachineRecomposer
    CinemachineShotQualityEvaluator
    CinemachineStoryboard
    CinemachineThirdPersonAim
    Inherited Members
    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
    public abstract class CinemachineExtension : MonoBehaviour

    Fields

    Epsilon

    Useful constant for very small floats

    Declaration
    protected const float Epsilon = 0.0001
    Field Value
    Type Description
    float

    Properties

    ComponentOwner

    Get the CinemachineVirtualCamera to which this extension is attached. This is distinct from the CinemachineCameras that the extension will modify, as extensions owned by manager cameras will be applied to all the CinemachineCamera children.

    Declaration
    public CinemachineVirtualCameraBase ComponentOwner { get; }
    Property Value
    Type Description
    CinemachineVirtualCameraBase

    Methods

    Awake()

    Connect to virtual camera pipeline. Override implementations must call this base implementation

    Declaration
    protected virtual void Awake()

    ConnectToVcam(bool)

    Connect to virtual camera. Implementation must be safe to be called redundantly. Override implementations must call this base implementation

    Declaration
    protected virtual void ConnectToVcam(bool connect)
    Parameters
    Type Name Description
    bool connect

    True if connecting, false if disconnecting

    ForceCameraPosition(Vector3, Quaternion)

    Force the virtual camera to assume a given position and orientation

    Declaration
    public virtual void ForceCameraPosition(Vector3 pos, Quaternion rot)
    Parameters
    Type Name Description
    Vector3 pos

    World-space position to take

    Quaternion rot

    World-space orientation to take

    GetAllExtraStates<T>(List<T>)

    Get all extra state info for all vcams.

    Declaration
    protected void GetAllExtraStates<T>(List<T> list) where T : CinemachineExtension.VcamExtraStateBase, new()
    Parameters
    Type Name Description
    List<T> list

    The list that will get populated with the extra states.

    Type Parameters
    Name Description
    T

    The extra state type

    GetExtraState<T>(CinemachineVirtualCameraBase)

    Because extensions can be placed on manager cams and will in that case be called for all the vcam children, vcam-specific state information should be stored here. Just define a class to hold your state info and use it exclusively when calling this.

    Declaration
    protected T GetExtraState<T>(CinemachineVirtualCameraBase vcam) where T : CinemachineExtension.VcamExtraStateBase, new()
    Parameters
    Type Name Description
    CinemachineVirtualCameraBase vcam

    The virtual camera being processed

    Returns
    Type Description
    T

    The extra state, cast as type T

    Type Parameters
    Name Description
    T

    The type of the extra state class

    GetMaxDampTime()

    Report maximum damping time needed for this extension. Only used in editor for timeline scrubbing.

    Declaration
    public virtual float GetMaxDampTime()
    Returns
    Type Description
    float

    Highest damping setting in this extension

    InvokePostPipelineStageCallback(CinemachineVirtualCameraBase, Stage, ref CameraState, float)

    Legacy support. This is only here to avoid changing the API to make PostPipelineStageCallback() public

    Declaration
    public void InvokePostPipelineStageCallback(CinemachineVirtualCameraBase vcam, CinemachineCore.Stage stage, ref CameraState state, float deltaTime)
    Parameters
    Type Name Description
    CinemachineVirtualCameraBase vcam

    The virtual camera being processed

    CinemachineCore.Stage stage

    The current pipeline stage

    CameraState state

    The current virtual camera state

    float deltaTime

    The current applicable deltaTime

    OnDestroy()

    Disconnect from virtual camera pipeline. Override implementations must call this base implementation

    Declaration
    protected virtual void OnDestroy()

    OnEnable()

    Does nothing. It's here for the little checkbox in the inspector.

    Declaration
    protected virtual void OnEnable()

    OnTargetObjectWarped(CinemachineVirtualCameraBase, Transform, Vector3)

    This is called to notify the extension that a target got warped, so that the extension can update its internal state to make the camera also warp seamlessly. Base class implementation does nothing.

    Declaration
    public virtual void OnTargetObjectWarped(CinemachineVirtualCameraBase vcam, Transform target, Vector3 positionDelta)
    Parameters
    Type Name Description
    CinemachineVirtualCameraBase vcam

    Virtual camera to warp

    Transform target

    The object that was warped

    Vector3 positionDelta

    The amount the target's position changed

    OnTransitionFromCamera(ICinemachineCamera, Vector3, float)

    Notification that this virtual camera is going live. Base class implementation must be called by any overridden method.

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

    Returns
    Type Description
    bool

    True to request a vcam update of internal state

    PostPipelineStageCallback(CinemachineVirtualCameraBase, Stage, ref CameraState, float)

    This callback will be called after the virtual camera has implemented each stage in the pipeline. This method may modify the referenced state. If deltaTime less than 0, reset all state info and perform no damping.

    Declaration
    protected abstract void PostPipelineStageCallback(CinemachineVirtualCameraBase vcam, CinemachineCore.Stage stage, ref CameraState state, float deltaTime)
    Parameters
    Type Name Description
    CinemachineVirtualCameraBase vcam

    The virtual camera being processed

    CinemachineCore.Stage stage

    The current pipeline stage

    CameraState state

    The current virtual camera state

    float deltaTime

    The current applicable deltaTime

    PrePipelineMutateCameraStateCallback(CinemachineVirtualCameraBase, ref CameraState, float)

    Override this to do such things as offset the ReferenceLookAt. Base class implementation does nothing.

    Declaration
    public virtual void PrePipelineMutateCameraStateCallback(CinemachineVirtualCameraBase vcam, ref CameraState curState, float deltaTime)
    Parameters
    Type Name Description
    CinemachineVirtualCameraBase vcam

    The virtual camera being processed

    CameraState curState

    Input state that must be mutated

    float deltaTime

    The current applicable deltaTime

    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)