FollowState.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using DG.Tweening;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using UnityEngine;
  5. namespace UnityCommon
  6. {
  7. public class FollowState : CameraState
  8. {
  9. private Transform tfTarget;
  10. private Transform tfOriginalParent;
  11. public FollowState(Camera camera, Transform target) : base(camera)
  12. {
  13. tfTarget = target;
  14. }
  15. private float fieldOfViewOriginal = 60;
  16. public override void Enter()
  17. {
  18. base.Enter();
  19. tfOriginalParent = m_camera.transform.parent;
  20. fieldOfViewOriginal = m_camera.fieldOfView;
  21. m_camera.DOFieldOfView(28, 0.5f);
  22. m_camera.transform.SetParent(tfTarget);
  23. m_camera.transform.localPosition = Vector3.zero;
  24. m_camera.transform.localRotation = Quaternion.identity;
  25. //SetCameraPosition(tfTarget.position, tfTarget.rotation, () =>
  26. //{
  27. // m_camera.transform.SetParent(tfTarget);
  28. //});
  29. }
  30. public override void Exit()
  31. {
  32. base.Exit();
  33. m_camera.fieldOfView = fieldOfViewOriginal;
  34. m_camera.transform.SetParent(tfOriginalParent);
  35. }
  36. }
  37. }