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
Inherited Members
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
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
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
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
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
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
Reset()
Reset the component to default values.
Declaration
protected override void Reset()
Overrides
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. |