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 } }