using AdonGameKit; using Chronos; using Cinemachine; using DG.Tweening; using System; using System.Collections; using System.Collections.Generic; using UnityEngine; /// /// 战斗胜利效果 /// public class WinningEffcter : MonoBehaviour { /// /// 根时钟 /// public Clock m_clockRoot; public BaseHero m_BaseHero; /// /// 角色相机管理 /// public CameraManagerAdon m_CameraManagerAdon; // Start is called before the first frame update public void Init() { m_clockRoot = Timekeeper.instance.Clock("Root");//获取时钟组件 } // Update is called once per frame void Update() { //测试代码 //if (Input.GetKeyDown(KeyCode.Q)) //{ // m_clockRoot = Timekeeper.instance.Clock("Root");//获取时钟组件 // PlayWinning(() => // { // Debug.Log("胜利效果完成回调"); // }); //} //if (Input.GetKeyDown(KeyCode.E)) //{ // m_CameraManagerAdon.m_CM_Active.m_Lens.FieldOfView = 40; // m_clockRoot.localTimeScale = 1; //} } /// /// 播放胜利效果 /// public void PlayWinning(Action Callback) { m_BaseHero = RoleManager.Instance.GetPlayer() as BaseHero; ///设置慢放 m_clockRoot.localTimeScale = 0.1f; /////慢镜头特写 //m_CameraManagerAdon = m_BaseHero.GetComponent();//获取相机管理 //CinemachineFreeLook m_cm = m_CameraManagerAdon.m_CM_Active as CinemachineFreeLook; //DOTween.To(() => m_cm.m_Lens.FieldOfView, x => m_cm.m_Lens.FieldOfView = x, 15, 1); //m_CameraManagerAdon.m_CM_Active.m_Lens.FieldOfView = 15;//镜头拉近 StartCoroutine(_PlayWinning(Callback));//协程,延迟 //延迟三秒 ///胜利动作特写 ///执行播放完的回调函数 } IEnumerator _PlayWinning(Action Callback) { yield return new WaitForSeconds(2); m_clockRoot.localTimeScale = 1f; ////播放角色胜利 //m_BaseHero.PlayWinning(); //等待3秒后会回调函数 yield return new WaitForSeconds(2); if(Callback != null) Callback(); } /// /// 玩家胜利动作及镜头 /// /// public void PlayWinningCamera(Action Callback) { m_BaseHero = RoleManager.Instance.GetPlayer() as BaseHero; //播放角色胜利 m_BaseHero.PlayWinning(); } }