12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- using AdonGameKit;
- using Chronos;
- using Cinemachine;
- using DG.Tweening;
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- /// <summary>
- /// 战斗胜利效果
- /// </summary>
- public class WinningEffcter : MonoBehaviour
- {
- /// <summary>
- /// 根时钟
- /// </summary>
- public Clock m_clockRoot;
- public BaseHero m_BaseHero;
- /// <summary>
- /// 角色相机管理
- /// </summary>
- 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;
- //}
- }
- /// <summary>
- /// 播放胜利效果
- /// </summary>
- public void PlayWinning(Action Callback)
- {
- m_BaseHero = RoleManager.Instance.GetPlayer() as BaseHero;
- ///设置慢放
- m_clockRoot.localTimeScale = 0.1f;
- /////慢镜头特写
- //m_CameraManagerAdon = m_BaseHero.GetComponent<CameraManagerAdon>();//获取相机管理
- //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();
- }
- /// <summary>
- /// 玩家胜利动作及镜头
- /// </summary>
- /// <param name="Callback"></param>
- public void PlayWinningCamera(Action Callback)
- {
- m_BaseHero = RoleManager.Instance.GetPlayer() as BaseHero;
- //播放角色胜利
- m_BaseHero.PlayWinning();
- }
- }
|