Class CinemachineBrain
CinemachineBrain is the link between the Unity Camera and the Cinemachine Virtual Cameras in the scene. It monitors the priority stack to choose the current Virtual Camera, and blend with another if necessary. Finally and most importantly, it applies the Virtual Camera state to the attached Unity Camera.
The CinemachineBrain is also the place where rules for blending between virtual cameras are defined. Camera blending is an interpolation over time of one virtual camera position and state to another. If you think of virtual cameras as cameramen, then blending is a little like one cameraman smoothly passing the camera to another cameraman. You can specify the time over which to blend, as well as the blend curve shape. Note that a camera cut is just a zero-time blend.
Inheritance
Namespace: Cinemachine
Syntax
[DocumentationSorting(DocumentationSortingAttribute.Level.UserRef)]
public class CinemachineBrain : MonoBehaviour
Fields
m_BrainUpdateMethod
The update time for the Brain, i.e. when the blends are evaluated and the brain's transform is updated.
Declaration
public CinemachineBrain.BrainUpdateMethod m_BrainUpdateMethod
Field Value
Type | Description |
---|---|
CinemachineBrain.BrainUpdateMethod |
m_CameraActivatedEvent
This event will fire whenever a virtual camera goes live. If a blend is involved, then the event will fire on the first frame of the blend
Declaration
public CinemachineBrain.VcamActivatedEvent m_CameraActivatedEvent
Field Value
Type | Description |
---|---|
CinemachineBrain.VcamActivatedEvent |
m_CameraCutEvent
This event will fire whenever a virtual camera goes live and there is no blend
Declaration
public CinemachineBrain.BrainEvent m_CameraCutEvent
Field Value
Type | Description |
---|---|
CinemachineBrain.BrainEvent |
m_CustomBlends
This is the asset which contains custom settings for specific blends.
Declaration
public CinemachineBlenderSettings m_CustomBlends
Field Value
Type | Description |
---|---|
CinemachineBlenderSettings |
m_DefaultBlend
The blend which is used if you don't explicitly define a blend between two Virtual Cameras.
Declaration
public CinemachineBlendDefinition m_DefaultBlend
Field Value
Type | Description |
---|---|
CinemachineBlendDefinition |
m_IgnoreTimeScale
When enabled, the cameras will always respond in real-time to user input and damping, even if the game is running in slow motion
Declaration
public bool m_IgnoreTimeScale
Field Value
Type | Description |
---|---|
System.Boolean |
m_ShowCameraFrustum
When enabled, shows the camera's frustum in the scene view.
Declaration
public bool m_ShowCameraFrustum
Field Value
Type | Description |
---|---|
System.Boolean |
m_ShowDebugText
When enabled, the current camera and blend will be indicated in the game window, for debugging.
Declaration
public bool m_ShowDebugText
Field Value
Type | Description |
---|---|
System.Boolean |
m_VcamUpdateMethod
Depending on how the target objects are animated, adjust the update method to minimize the potential jitter. Use FixedUpdate if all your targets are animated with for RigidBody animation. SmartUpdate will choose the best method for each virtual camera, depending on how the target is animated.
Declaration
public CinemachineBrain.VcamUpdateMethod m_VcamUpdateMethod
Field Value
Type | Description |
---|---|
CinemachineBrain.VcamUpdateMethod |
m_WorldUpOverride
If set, this object's Y axis will define the worldspace Up vector for all the virtual cameras. This is useful in top-down game environments. If not set, Up is worldspace Y.
Declaration
public Transform m_WorldUpOverride
Field Value
Type | Description |
---|---|
Transform |
Properties
ActiveBlend
Get the current blend in progress. Returns null if none.
Declaration
public CinemachineBlend ActiveBlend { get; }
Property Value
Type | Description |
---|---|
CinemachineBlend |
ActiveVirtualCamera
Get the current active virtual camera.
Declaration
public ICinemachineCamera ActiveVirtualCamera { get; }
Property Value
Type | Description |
---|---|
ICinemachineCamera |
CurrentCameraState
The current state applied to the unity camera (may be the result of a blend)
Declaration
public CameraState CurrentCameraState { get; }
Property Value
Type | Description |
---|---|
CameraState |
DefaultWorldUp
Get the default world up for the virtual cameras.
Declaration
public Vector3 DefaultWorldUp { get; }
Property Value
Type | Description |
---|---|
Vector3 |
IsBlending
Is there a blend in progress?
Declaration
public bool IsBlending { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
OutputCamera
Get the Unity Camera that is attached to this GameObject. This is the camera that will be controlled by the brain.
Declaration
public Camera OutputCamera { get; }
Property Value
Type | Description |
---|---|
Camera |
SoloCamera
API for the Unity Editor. Show this camera no matter what. This is static, and so affects all Cinemachine brains.
Declaration
public static ICinemachineCamera SoloCamera { get; set; }
Property Value
Type | Description |
---|---|
ICinemachineCamera |
Methods
GetSoloGUIColor()
API for the Unity Editor.
Declaration
public static Color GetSoloGUIColor()
Returns
Type | Description |
---|---|
Color | Color used to indicate that a camera is in Solo mode. |
IsLive(ICinemachineCamera, Boolean)
True if the ICinemachineCamera the current active camera, or part of a current blend, either directly or indirectly because its parents are live.
Declaration
public bool IsLive(ICinemachineCamera vcam, bool dominantChildOnly = false)
Parameters
Type | Name | Description |
---|---|---|
ICinemachineCamera | vcam | The camera to test whether it is live |
System.Boolean | dominantChildOnly | If truw, will only return true if this vcam is the dominat live child |
Returns
Type | Description |
---|---|
System.Boolean | True if the camera is live (directly or indirectly) or part of a blend in progress. |