Class CinemachineVirtualCameraBase
Base class for a Monobehaviour that represents a Virtual Camera within the Unity scene.
This is intended to be attached to an empty Transform GameObject. Inherited classes can be either standalone virtual cameras such as CinemachineVirtualCamera, or meta-cameras such as CinemachineClearShot or CinemachineFreeLook.
A CinemachineVirtualCameraBase exposes a Priority property. When the behaviour is enabled in the game, the Virtual Camera is automatically placed in a queue maintained by the static CinemachineCore singleton. The queue is sorted by priority. When a Unity camera is equipped with a CinemachineBrain behaviour, the brain will choose the camera at the head of the queue. If you have multiple Unity cameras with CinemachineBrain behaviours (say in a split-screen context), then you can filter the queue by setting the culling flags on the virtual cameras. The culling mask of the Unity Camera will then act as a filter for the brain. Apart from this, there is nothing that prevents a virtual camera from controlling multiple Unity cameras simultaneously.
상속된 멤버
네임스페이스: Cinemachine
어셈블리: solution.dll
구문
public abstract class CinemachineVirtualCameraBase : MonoBehaviour, ICinemachineCamera
필드
| 이름 | 설명 |
|---|---|
| m_ExcludedPropertiesInInspector | Inspector control - Use for hiding sections of the Inspector UI. |
| m_LockStageInInspector | Inspector control - Use for enabling sections of the Inspector UI. |
| m_Priority | The priority will determine which camera becomes active based on the state of other cameras and this camera. Higher numbers have greater priority. |
| m_StandbyUpdate | When the virtual camera is not live, this is how often the virtual camera will be updated. Set this to tune for performance. Most of the time Never is fine, unless the virtual camera is doing shot evaluation. |
프로퍼티
| 이름 | 설명 |
|---|---|
| Description | Gets a brief debug description of this virtual camera, for use when displayiong debug info |
| Follow | Get the Follow target for the Body component in the Cinemachine pipeline. |
| IsValid | Will return false if this references a deleted object |
| LookAt | Get the LookAt target for the Aim component in the Cinemachine pipeline. |
| Name | Get the name of the Virtual Camera. Base implementation returns the owner GameObject's name. |
| ParentCamera | Support for meta-virtual-cameras. This is the situation where a virtual camera is in fact the public face of a private army of virtual cameras, which it manages on its own. This method gets the VirtualCamera owner, if any. Private armies are implemented as Transform children of the parent vcam. |
| PreviousStateIsValid | Set this to force the next update to ignore deltaTime and reset itself |
| Priority | Get the Priority of the virtual camera. This determines its placement in the CinemachineCore's queue of eligible shots. |
| State | The CameraState object holds all of the information necessary to position the Unity camera. It is the output of this class. |
| ValidatingStreamVersion | Version that was last streamed, for upgrading legacy |
| VirtualCameraGameObject | The GameObject owner of the Virtual Camera behaviour. |
메서드
| 이름 | 설명 |
|---|---|
| AddExtension(CinemachineExtension) | A delegate to hook into the state calculation pipeline. This will be called after each pipeline stage, to allow others to hook into the pipeline. See CinemachineCore.Stage. |
| ApplyPositionBlendMethod(ref CameraState, BlendHint) | Applies a position blend hint to the camera state |
| CreateBlend(ICinemachineCamera, ICinemachineCamera, CinemachineBlendDefinition, CinemachineBlend) | Create a blend between 2 virtual cameras, taking into account any existing active blend. |
| 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. Do not call this method. Let the framework do it at the appropriate time |
| InvokeOnTransitionInExtensions(ICinemachineCamera, Vector3, float) | Invokes the OnTransitionFromCamera for all extensions on this camera |
| InvokePostPipelineStageCallback(CinemachineVirtualCameraBase, Stage, ref CameraState, float) | Invokes the PostPipelineStageDelegate for this camera, and up the hierarchy for all parent cameras (if any). Implementaion must be sure to call this after each pipeline stage, to allow other services to hook into the pipeline. See CinemachineCore.Stage. |
| IsLiveChild(ICinemachineCamera, bool) | Check whether the vcam a live child of this camera. This base class implementation always returns false. |
| MoveToTopOfPrioritySubqueue() | When multiple virtual cameras have the highest priority, there is sometimes the need to push one to the top, making it the current Live camera if it shares the highest priority in the queue with its peers.
|
| OnDestroy() | Maintains the global vcam registry. Always call the base class implementation. |
| OnDisable() | Base class implementation makes sure the priority queue remains up-to-date. |
| OnEnable() | Base class implementation adds the virtual camera from the priority queue. |
| OnTargetObjectWarped(Transform, Vector3) | This is called to notify the component that a target got warped, so that the component can update its internal state to make the camera also warp seamlessy. |
| OnTransformParentChanged() | Base class implementation makes sure the priority queue remains up-to-date. |
| OnTransitionFromCamera(ICinemachineCamera, Vector3, float) | Notification that this virtual camera is going live. Base class implementation must be called by any overridden method. |
| OnValidate() | Enforce bounds for fields, when changed in inspector. Call base class implementation at the beginning of overridden method. After base method is called, ValidatingStreamVersion will be valid. |
| PullStateFromVirtualCamera(Vector3, ref LensSettings) | Create a camera state based on the current transform of this vcam |
| RemoveExtension(CinemachineExtension) | Remove a Pipeline stage hook callback. |
| ResolveFollow(Transform) | Returns this vcam's Follow target, or if that is null, will retrun the parent vcam's Follow target. |
| ResolveLookAt(Transform) | Returns this vcam's LookAt target, or if that is null, will retrun the parent vcam's LookAt target. |
| Start() | Base class implementation does nothing. |
| Update() | Base class implementation makes sure the priority queue remains up-to-date. |
| UpdateCameraState(Vector3, float) | Update the camera's state. The implementation must guarantee against multiple calls per frame, and should use CinemachineCore.UpdateVirtualCamera(ICinemachineCamera, Vector3, float), which has protection against multiple calls per frame. |