Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class CinemachineSmartCamera : SmartCamera
- {
- public CinemachineVirtualCamera VirtualCamera;
- [ContextMenu("Activate")]
- public override void Activate()
- {
- VirtualCamera.MoveToTopOfPrioritySubqueue();
- base.Activate();
- }
- public override void ClearWatchTarget()=>ClearVCamTarget();
- public override void Watch(Transform target)
- {
- LookAt(target);
- VirtualCamera.LookAt = target;
- TargetFound?.Invoke(target);
- }
- public override Transform LookTarget => VirtualCamera.LookAt;
- public string DisplayName = "";
- public override void LookAt(Transform target)
- {
- //VirtualCamera.PreviousStateIsValid = false;
- if (target != null)
- {
- var t = VirtualCamera.transform;
- var dir = (target.position - t.position).normalized;
- t.forward = dir;
- }
- VirtualCamera.LookAt = target;
- }
- #region Plumbing
- public bool BeingLookedThrough => Brain != null && Brain.ActiveVirtualCamera != null &&
- (CinemachineVirtualCamera)Brain.ActiveVirtualCamera == VirtualCamera;
- void ClearVCamTarget()
- {
- if(VirtualCamera.LookAt != null)
- TargetLost?.Invoke(VirtualCamera.LookAt);
- VirtualCamera.LookAt = null;
- VirtualCamera.PreviousStateIsValid = false;
- }
- public override bool IsLive => BeingLookedThrough;
- protected override Transform CameraRoot => VirtualCamera.transform;
- private CinemachineBrain Brain => CinemachineCore.Instance.FindPotentialTargetBrain(VirtualCamera);
- public override string ToString() => Name;
- public override string GetDisplayName()
- {
- return DisplayName;
- }
- #endregion
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement