Class CinemachineClearShot
Cinemachine ClearShot is a "manager camera" that owns and manages a set of Virtual Camera gameObject children. When Live, the ClearShot will check the children, and choose the one with the best quality shot and make it Live.
This can be a very powerful tool. If the child cameras have CinemachineCollider extensions, they will analyze the scene for target obstructions, optimal target distance, and other items, and report their assessment of shot quality back to the ClearShot parent, who will then choose the best one. You can use this to set up complex multi-camera coverage of a scene, and be assured that a clear shot of the target will always be available.
If multiple child cameras have the same shot quality, the one with the highest priority will be chosen.
You can also define custom blends between the ClearShot children.
Inheritance
Implements
Inherited Members
Namespace: Cinemachine
Assembly: solution.dll
Syntax
[DocumentationSorting(DocumentationSortingAttribute.Level.UserRef)]
[DisallowMultipleComponent]
[ExecuteInEditMode]
[ExcludeFromPreset]
[AddComponentMenu("Cinemachine/CinemachineClearShot")]
public class CinemachineClearShot : CinemachineVirtualCameraBase, ICinemachineCamera
Fields
Name | Description |
---|---|
m_ActivateAfter | Wait this many seconds before activating a new child camera |
m_CustomBlends | This is the asset which contains custom settings for specific blends |
m_DefaultBlend | The blend which is used if you don't explicitly define a blend between two Virtual Cameras |
m_Follow | Default object for the camera children wants to move with (the body target), if not specified in a child camera. May be empty. |
m_LookAt | Default object for the camera children to look at (the aim target), if not specified in a child camera. May be empty. |
m_MinDuration | An active camera must be active for at least this many seconds |
m_RandomizeChoice | If checked, camera choice will be randomized if multiple cameras are equally desirable. Otherwise, child list order will be used |
m_ShowDebugText | When enabled, the current camera and blend will be indicated in the game window, for debugging |
Properties
Name | Description |
---|---|
ChildCameras | The list of child cameras. These are just the immediate children in the hierarchy. |
Description | Gets a brief debug description of this virtual camera, for use when displayiong debug info |
Follow | Get the current Follow target. Returns parent's Follow if parent is non-null and no specific Follow defined for this camera |
IsBlending | Is there a blend in progress? |
LiveChild | Get the current "best" child virtual camera, that would be chosen if the ClearShot camera were active. |
LookAt | Get the current LookAt target. Returns parent's LookAt if parent is non-null and no specific LookAt defined for this camera |
State | The CameraState of the currently live child |
Methods
Name | Description |
---|---|
ForceCameraPosition(Vector3, Quaternion) | Force the virtual camera to assume a given position and orientation |
InternalUpdateCameraState(Vector3, float) | Internal use only. 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. |
IsLiveChild(ICinemachineCamera, bool) | Check whether the vcam a live child of this camera. |
OnDisable() | Base class implementation makes sure the priority queue remains up-to-date. |
OnEnable() | Makes sure the internal child cache is up to date |
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. |
OnTransformChildrenChanged() | Makes sure the internal child cache is up to date |
OnTransitionFromCamera(ICinemachineCamera, Vector3, float) | Notification that this virtual camera is going live. This implementation resets the child randomization. |
ResetRandomization() | If RandomizeChoice is enabled, call this to re-randomize the children next frame. This is useful if you want to freshen up the shot. |