WinningEffcter.cs 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. using AdonGameKit;
  2. using Chronos;
  3. using Cinemachine;
  4. using DG.Tweening;
  5. using System;
  6. using System.Collections;
  7. using System.Collections.Generic;
  8. using UnityEngine;
  9. /// <summary>
  10. /// 战斗胜利效果
  11. /// </summary>
  12. public class WinningEffcter : MonoBehaviour
  13. {
  14. /// <summary>
  15. /// 根时钟
  16. /// </summary>
  17. public Clock m_clockRoot;
  18. public BaseHero m_BaseHero;
  19. /// <summary>
  20. /// 角色相机管理
  21. /// </summary>
  22. public CameraManagerAdon m_CameraManagerAdon;
  23. // Start is called before the first frame update
  24. public void Init()
  25. {
  26. m_clockRoot = Timekeeper.instance.Clock("Root");//获取时钟组件
  27. }
  28. // Update is called once per frame
  29. void Update()
  30. {
  31. //测试代码
  32. //if (Input.GetKeyDown(KeyCode.Q))
  33. //{
  34. // m_clockRoot = Timekeeper.instance.Clock("Root");//获取时钟组件
  35. // PlayWinning(() =>
  36. // {
  37. // Debug.Log("胜利效果完成回调");
  38. // });
  39. //}
  40. //if (Input.GetKeyDown(KeyCode.E))
  41. //{
  42. // m_CameraManagerAdon.m_CM_Active.m_Lens.FieldOfView = 40;
  43. // m_clockRoot.localTimeScale = 1;
  44. //}
  45. }
  46. /// <summary>
  47. /// 播放胜利效果
  48. /// </summary>
  49. public void PlayWinning(Action Callback)
  50. {
  51. m_BaseHero = RoleManager.Instance.GetPlayer() as BaseHero;
  52. ///设置慢放
  53. m_clockRoot.localTimeScale = 0.1f;
  54. /////慢镜头特写
  55. //m_CameraManagerAdon = m_BaseHero.GetComponent<CameraManagerAdon>();//获取相机管理
  56. //CinemachineFreeLook m_cm = m_CameraManagerAdon.m_CM_Active as CinemachineFreeLook;
  57. //DOTween.To(() => m_cm.m_Lens.FieldOfView, x => m_cm.m_Lens.FieldOfView = x, 15, 1);
  58. //m_CameraManagerAdon.m_CM_Active.m_Lens.FieldOfView = 15;//镜头拉近
  59. StartCoroutine(_PlayWinning(Callback));//协程,延迟
  60. //延迟三秒
  61. ///胜利动作特写
  62. ///执行播放完的回调函数
  63. }
  64. IEnumerator _PlayWinning(Action Callback)
  65. {
  66. yield return new WaitForSeconds(2);
  67. m_clockRoot.localTimeScale = 1f;
  68. ////播放角色胜利
  69. //m_BaseHero.PlayWinning();
  70. //等待3秒后会回调函数
  71. yield return new WaitForSeconds(2);
  72. if(Callback != null) Callback();
  73. }
  74. /// <summary>
  75. /// 玩家胜利动作及镜头
  76. /// </summary>
  77. /// <param name="Callback"></param>
  78. public void PlayWinningCamera(Action Callback)
  79. {
  80. m_BaseHero = RoleManager.Instance.GetPlayer() as BaseHero;
  81. //播放角色胜利
  82. m_BaseHero.PlayWinning();
  83. }
  84. }