| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- using UnityEngine;
- namespace Cinemachine
- {
- /// <summary>
- /// An abstract representation of a virtual camera which lives within the Unity scene
- /// </summary>
- public interface ICinemachineCamera
- {
- /// <summary>
- /// Gets the name of this virtual camera. For use when deciding how to blend
- /// to or from this camera
- /// </summary>
- string Name { get; }
- /// <summary>
- /// Gets a brief debug description of this virtual camera, for use when displayiong debug info
- /// </summary>
- string Description { get; }
- /// <summary>
- /// Gets the priority of this <c>ICinemachineCamera</c>. The virtual camera
- /// will be inserted into the global priority stack based on this value.
- /// </summary>
- int Priority { get; set; }
- /// <summary>
- /// The thing the camera wants to look at (aim). May be null.
- /// </summary>
- Transform LookAt { get; set; }
- /// <summary>
- /// The thing the camera wants to follow (moving camera). May be null.
- /// </summary>
- Transform Follow { get; set; }
- /// <summary>
- /// Camera state at the current time.
- /// </summary>
- CameraState State { get; }
- /// <summary>
- /// Gets the virtual camera game attached to this class.
- /// </summary>
- GameObject VirtualCameraGameObject { get; }
- /// <summary>
- /// Will return false if this references a deleted object
- /// </summary>
- bool IsValid { get; }
- /// <summary>
- /// For cameras that implement child cameras, returns the parent vcam, otherwise null.
- /// </summary>
- ICinemachineCamera ParentCamera { get; }
- /// <summary>Check whether the vcam is a live child of this camera.</summary>
- /// <param name="vcam">The Virtual Camera to check</param>
- /// <param name="dominantChildOnly">If truw, will only return true if this vcam is the dominat live child</param>
- /// <returns>True if the vcam is currently actively influencing the state of this vcam</returns>
- bool IsLiveChild(ICinemachineCamera vcam, bool dominantChildOnly = false);
- /// <summary>
- /// Update the camera's state.
- /// The implementation must guarantee against multiple calls per frame, and should
- /// use CinemachineCore.UpdateVirtualCamera(ICinemachineCamera, Vector3, mfloat), which
- /// has protection against multiple calls per frame.
- /// </summary>
- /// <param name="worldUp">Default world Up, set by the CinemachineBrain</param>
- /// <param name="deltaTime">Delta time for time-based effects (ignore if less than 0)</param>
- void UpdateCameraState(Vector3 worldUp, float deltaTime);
- /// <summary>
- /// Updates this Cinemachine Camera. For an active camera this should be
- /// called once and only once each frame. To guarantee this, you should never
- /// call this method directly. Always use
- /// CinemachineCore.UpdateVirtualCamera(ICinemachineCamera, Vector3, float), which
- /// has protection against multiple calls per frame.
- /// </summary>
- /// <param name="worldUp">Default world Up, set by the CinemachineBrain</param>
- /// <param name="deltaTime">Delta time for time-based effects (ignore if less than 0)</param>
- void InternalUpdateCameraState(Vector3 worldUp, float deltaTime);
- /// <summary>
- /// Notification that a new camera is being activated. This is sent to the
- /// currently active camera. Both may be active simultaneously for a while, if blending.
- /// </summary>
- /// <param name="fromCam">The camera being deactivated. May be null.</param>
- /// <param name="worldUp">Default world Up, set by the CinemachineBrain</param>
- /// <param name="deltaTime">Delta time for time-based effects (ignore if less than 0)</param>
- void OnTransitionFromCamera(ICinemachineCamera fromCam, Vector3 worldUp, float deltaTime);
- /// <summary>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. Base class implementation does nothing.</summary>
- /// <param name="target">The object that was warped</param>
- /// <param name="positionDelta">The amount the target's position changed</param>
- void OnTargetObjectWarped(Transform target, Vector3 positionDelta);
- }
- }
|