Class CinemachineFreeLook | Package Manager UI website
docs.unity3d.com
    Show / Hide Table of Contents

    Class CinemachineFreeLook

    A Cinemachine Camera geared towards a 3rd person camera experience. The camera orbits around its subject with three separate camera rigs defining rings around the target. Each rig has its own radius, height offset, composer, and lens settings. Depending on the camera's position along the spline connecting these three rigs, these settings are interpolated to give the final camera position and state.

    Inheritance
    MonoBehaviour
    CinemachineVirtualCameraBase
    CinemachineFreeLook
    Inherited Members
    CinemachineVirtualCameraBase.CinemachineGUIDebuggerCallback
    CinemachineVirtualCameraBase.m_ExcludedPropertiesInInspector
    CinemachineVirtualCameraBase.m_LockStageInInspector
    CinemachineVirtualCameraBase.ValidatingStreamVersion
    CinemachineVirtualCameraBase.m_Priority
    CinemachineVirtualCameraBase.AddExtension(CinemachineExtension)
    CinemachineVirtualCameraBase.RemoveExtension(CinemachineExtension)
    CinemachineVirtualCameraBase.InvokePostPipelineStageCallback(CinemachineVirtualCameraBase, CinemachineCore.Stage, CameraState, Single)
    CinemachineVirtualCameraBase.Name
    CinemachineVirtualCameraBase.Description
    CinemachineVirtualCameraBase.Priority
    CinemachineVirtualCameraBase.SetPositionBlendMethod(CameraState, CinemachineVirtualCameraBase.PositionBlendMethod)
    CinemachineVirtualCameraBase.VirtualCameraGameObject
    CinemachineVirtualCameraBase.ParentCamera
    CinemachineVirtualCameraBase.PreviousStateIsValid
    CinemachineVirtualCameraBase.UpdateCameraState(Vector3, Single)
    CinemachineVirtualCameraBase.Start()
    CinemachineVirtualCameraBase.OnDisable()
    CinemachineVirtualCameraBase.Update()
    CinemachineVirtualCameraBase.OnTransformParentChanged()
    CinemachineVirtualCameraBase.ResolveLookAt(Transform)
    CinemachineVirtualCameraBase.ResolveFollow(Transform)
    CinemachineVirtualCameraBase.MoveToTopOfPrioritySubqueue()
    Namespace: Cinemachine
    Syntax
    [DocumentationSorting(DocumentationSortingAttribute.Level.UserRef)]
    public class CinemachineFreeLook : CinemachineVirtualCameraBase, ICinemachineCamera

    Fields

    CreateRigOverride

    Override component pipeline creation. This needs to be done by the editor to support Undo. The override must do exactly the same thing as the CreatePipeline method in this class.

    Declaration
    public static CinemachineFreeLook.CreateRigDelegate CreateRigOverride
    Field Value
    Type Description
    CinemachineFreeLook.CreateRigDelegate

    DestroyRigOverride

    Override component pipeline destruction. This needs to be done by the editor to support Undo.

    Declaration
    public static CinemachineFreeLook.DestroyRigDelegate DestroyRigOverride
    Field Value
    Type Description
    CinemachineFreeLook.DestroyRigDelegate

    m_BindingMode

    The coordinate space to use when interpreting the offset from the target

    Declaration
    public CinemachineTransposer.BindingMode m_BindingMode
    Field Value
    Type Description
    CinemachineTransposer.BindingMode

    m_CommonLens

    If enabled, this lens setting will apply to all three child rigs, otherwise the child rig lens settings will be used

    Declaration
    public bool m_CommonLens
    Field Value
    Type Description
    System.Boolean

    m_Follow

    Object for the camera children wants to move with (the body target)

    Declaration
    public Transform m_Follow
    Field Value
    Type Description
    Transform

    m_Heading

    The definition of Forward. Camera will follow behind

    Declaration
    public CinemachineOrbitalTransposer.Heading m_Heading
    Field Value
    Type Description
    CinemachineOrbitalTransposer.Heading

    m_Lens

    Specifies the lens properties of this Virtual Camera.
    This generally mirrors the Unity Camera's lens settings, and will be used to drive the Unity camera when the vcam is active

    Declaration
    public LensSettings m_Lens
    Field Value
    Type Description
    LensSettings

    m_LookAt

    Object for the camera children to look at (the aim target)

    Declaration
    public Transform m_LookAt
    Field Value
    Type Description
    Transform

    m_Orbits

    The radius and height of the three orbiting rigs

    Declaration
    public CinemachineFreeLook.Orbit[] m_Orbits
    Field Value
    Type Description
    CinemachineFreeLook.Orbit[]

    m_PositionBlending

    Hint for blending positions to and from this virtual camera

    Declaration
    public CinemachineVirtualCameraBase.PositionBlendMethod m_PositionBlending
    Field Value
    Type Description
    CinemachineVirtualCameraBase.PositionBlendMethod

    m_RecenterToTargetHeading

    Controls how automatic recentering of the X axis is accomplished

    Declaration
    public AxisState.Recentering m_RecenterToTargetHeading
    Field Value
    Type Description
    AxisState.Recentering

    m_SplineCurvature

    Declaration
    public float m_SplineCurvature
    Field Value
    Type Description
    System.Single

    m_XAxis

    The Horizontal axis. Value is -180...180. This is passed on to the rigs' OrbitalTransposer component

    Declaration
    public AxisState m_XAxis
    Field Value
    Type Description
    AxisState

    m_YAxis

    The Vertical axis. Value is 0..1. Chooses how to blend the child rigs

    Declaration
    public AxisState m_YAxis
    Field Value
    Type Description
    AxisState

    m_YAxisRecentering

    Controls how automatic recentering of the Y axis is accomplished

    Declaration
    public AxisState.Recentering m_YAxisRecentering
    Field Value
    Type Description
    AxisState.Recentering

    Properties

    Follow

    Get the current Follow target. Returns parent's Follow if parent is non-null and no specific Follow defined for this camera

    Declaration
    public override Transform Follow { get; set; }
    Property Value
    Type Description
    Transform
    Overrides
    CinemachineVirtualCameraBase.Follow

    LiveChildOrSelf

    Returns the rig with the greatest weight

    Declaration
    public override ICinemachineCamera LiveChildOrSelf { get; }
    Property Value
    Type Description
    ICinemachineCamera
    Overrides
    CinemachineVirtualCameraBase.LiveChildOrSelf

    LookAt

    Get the current LookAt target. Returns parent's LookAt if parent is non-null and no specific LookAt defined for this camera

    Declaration
    public override Transform LookAt { get; set; }
    Property Value
    Type Description
    Transform
    Overrides
    CinemachineVirtualCameraBase.LookAt

    RigNames

    Names of the 3 child rigs

    Declaration
    public static string[] RigNames { get; }
    Property Value
    Type Description
    System.String[]

    State

    The cacmera state, which will be a blend of the child rig states

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

    Methods

    GetLocalPositionForCameraFromInput(Single)

    Returns the local position of the camera along the spline used to connect the three camera rigs. Does not take into account the current heading of the camera (or its target)

    Declaration
    public Vector3 GetLocalPositionForCameraFromInput(float t)
    Parameters
    Type Name Description
    System.Single t

    The t-value for the camera on its spline. Internally clamped to the value [0,1]

    Returns
    Type Description
    Vector3

    The local offset (back + up) of the camera WRT its target based on the supplied t-value

    GetRig(Int32)

    Get a child rig

    Declaration
    public CinemachineVirtualCamera GetRig(int i)
    Parameters
    Type Name Description
    System.Int32 i

    Rig index. Can be 0, 1, or 2

    Returns
    Type Description
    CinemachineVirtualCamera

    The rig, or null if index is bad.

    InternalUpdateCameraState(Vector3, Single)

    Internal use only. Called by CinemachineCore at designated update time so the vcam can position itself and track its targets. All 3 child rigs are updated, and a blend calculated, depending on the value of the Y axis.

    Declaration
    public override void InternalUpdateCameraState(Vector3 worldUp, float deltaTime)
    Parameters
    Type Name Description
    Vector3 worldUp

    Default world Up, set by the CinemachineBrain

    System.Single deltaTime

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

    Overrides
    CinemachineVirtualCameraBase.InternalUpdateCameraState(Vector3, Single)

    IsLiveChild(ICinemachineCamera)

    Check whether the vcam a live child of this camera.
    Returns true if the child is currently contributing actively to the camera state.

    Declaration
    public override bool IsLiveChild(ICinemachineCamera vcam)
    Parameters
    Type Name Description
    ICinemachineCamera vcam

    The Virtual Camera to check

    Returns
    Type Description
    System.Boolean

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

    Overrides
    CinemachineVirtualCameraBase.IsLiveChild(ICinemachineCamera)

    OnDestroy()

    Makes sure that the child rigs get destroyed in an undo-firndly manner. Invalidates the rig cache.

    Declaration
    protected override void OnDestroy()
    Overrides
    CinemachineVirtualCameraBase.OnDestroy()

    OnEnable()

    Updates the child rig cache

    Declaration
    protected override void OnEnable()
    Overrides
    CinemachineVirtualCameraBase.OnEnable()

    OnTargetObjectWarped(Transform, Vector3)

    This is called to notify the vcam that a target got warped, so that the vcam can update its internal state to make the camera also warp seamlessy.

    Declaration
    public override void OnTargetObjectWarped(Transform target, Vector3 positionDelta)
    Parameters
    Type Name Description
    Transform target

    The object that was warped

    Vector3 positionDelta

    The amount the target's position changed

    Overrides
    CinemachineVirtualCameraBase.OnTargetObjectWarped(Transform, Vector3)

    OnTransitionFromCamera(ICinemachineCamera, Vector3, Single)

    If we are transitioning from another FreeLook, grab the axis values from it.

    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

    System.Single deltaTime

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

    Overrides
    CinemachineVirtualCameraBase.OnTransitionFromCamera(ICinemachineCamera, Vector3, Single)

    OnValidate()

    Enforce bounds for fields, when changed in inspector.

    Declaration
    protected override void OnValidate()
    Overrides
    CinemachineVirtualCameraBase.OnValidate()
    Back to top
    Copyright © 2023 Unity Technologies — Terms of use
    • Legal
    • Privacy Policy
    • Cookies
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)
    "Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
    Generated by DocFX on 18 October 2023