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