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();
}
}