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.
Inherited Members
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
LiveChildOrSelf
Returns the rig with the greatest weight
Declaration
public override ICinemachineCamera LiveChildOrSelf { get; }
Property Value
Type | Description |
---|---|
ICinemachineCamera |
Overrides
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
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
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
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
OnDestroy()
Makes sure that the child rigs get destroyed in an undo-firndly manner. Invalidates the rig cache.
Declaration
protected override void OnDestroy()
Overrides
OnEnable()
Updates the child rig cache
Declaration
protected override void OnEnable()
Overrides
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
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
OnValidate()
Enforce bounds for fields, when changed in inspector.
Declaration
protected override void OnValidate()