• 主页

  • 投资

  • IT

    🔥
  • 设计

  • 销售

  • 共151篇

    Unity - 游戏引擎

关闭

返回栏目

关闭

返回Unity - 游戏引擎栏目

112 - Manager - CameraManager.cs - 经理_相机

作者:

贺及楼

成为作者

更新日期:2023-09-17 10:59:10

  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using DG.Tweening;
  5. public class CameraManager : BaseManager {
  6. private GameObject cameraGo;
  7. private Animator cameraAnim;
  8. private FollowTarget followTarget;
  9. private Vector3 originalPosition;
  10. private Vector3 originalRotation;
  11. public CameraManager(GameFacade facade) : base(facade) { }
  12. public override void OnInit()
  13. {
  14. cameraGo = Camera.main.gameObject;
  15. cameraAnim = cameraGo.GetComponent<Animator>();
  16. followTarget = cameraGo.GetComponent<FollowTarget>();
  17. }
  18. //public override void Update()
  19. //{
  20. // if (Input.GetMouseButtonDown(0))
  21. // {
  22. // FollowTarget(null);
  23. // }
  24. // if (Input.GetMouseButtonDown(1))
  25. // {
  26. // WalkthroughScene();
  27. // }
  28. //}
  29. public void FollowRole()
  30. {
  31. followTarget.target = facade.GetCurrentRoleGameObject().transform;
  32. cameraAnim.enabled = false;
  33. originalPosition = cameraGo.transform.position;
  34. originalRotation = cameraGo.transform.eulerAngles;
  35. Quaternion targetQuaternion = Quaternion.LookRotation(followTarget.target.position - cameraGo.transform.position);
  36. cameraGo.transform.DORotateQuaternion(targetQuaternion, 1f).OnComplete(delegate()
  37. {
  38. followTarget.enabled = true;
  39. });
  40. }
  41. public void WalkthroughScene()
  42. {
  43. followTarget.enabled = false;
  44. cameraGo.transform.DOMove(originalPosition, 1f);
  45. cameraGo.transform.DORotate(originalRotation, 1f).OnComplete( delegate()
  46. {
  47. cameraAnim.enabled = true;
  48. });
  49. }
  50. }