using Chronos;
using Cinemachine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace AdonGameKit
{
///
/// 受击爆炸事件接收
///
public class FBXEventExplosion : MonoBehaviour
{
GameObject m_Owner;
Collider m_WeaponCol;
///
/// 震屏组件
///
CinemachineImpulseSource m_CinemachineImpulseSource;
void Awake()
{
m_WeaponCol = GetComponent();
m_CinemachineImpulseSource = GetComponent();//震屏组件
}
///
/// 设置玩家控制类
///
///
public void SetOwner(GameObject owner)
{
m_Owner = owner;
}
#region ============================================ Animation Event ============================================
///
/// 普通攻击开始
///
public void OnAttackOn()
{
m_WeaponCol.enabled = true;
}
///
/// 普通攻击结束
///
public void OnAttackOff()
{
m_WeaponCol.enabled = false;
}
///
/// 震屏
///
public void OnShake(int lv = 0)
{
if (lv == 0)
{
SetCameraShake(transform.position, 0.8f, 0.1f, 0.2f);
}
else if(lv == 1)
{
SetCameraShake(transform.position, 2f, 0.1f, 0.3f);
}
}
///
/// 设置震屏
///
/// 震动起始位置
/// 震动等级
/// 震动持续时间
/// 衰减时间
public void SetCameraShake(Vector3 pos, float lv, float sustainTime = 0.1f, float decayTime = 0.1f)
{
m_CinemachineImpulseSource.m_ImpulseDefinition.m_AmplitudeGain = lv;
m_CinemachineImpulseSource.m_ImpulseDefinition.m_TimeEnvelope.m_SustainTime = sustainTime;
m_CinemachineImpulseSource.m_ImpulseDefinition.m_TimeEnvelope.m_DecayTime = decayTime;
m_CinemachineImpulseSource.GenerateImpulseAt(pos, Vector3.one);
}
/////
///// 打击移动开始
/////
//public void OnHitMoveStart(float force)
//{
// m_Owner.m_Force = force;
//}
/////
///// 打击移动结束
/////
//public void OnHitMoveEnd()
//{
// m_Owner.m_Force = 0;
//}
/////
///// 可进入极限闪避
/////
//public void OnExtremeDodge(float _time)
//{
// //播放可极限闪避光效
// m_Owner.m_FxManagerAdon.PlayExtermePointEff();
// //设置可进入极限闪避
// m_Owner.m_Hero.SetExtermeTimeZone(_time);
//}
/////
///// 震屏
/////
//public void OnShake(int lv = 0)
//{
// if(lv == 0)
// {
// m_Owner.SetCameraShake(m_Owner.transform.position, 1f, 0.2f, 0.7f);
// }
//}
#endregion
}
}