using System.Collections; using System.Collections.Generic; using UnityEngine; /// /// 同一个角色同一个时间只能有一个ability /// public abstract class AbilityBase { protected int m_AbilityID; public int ID { get { return m_AbilityID; } } public AbilityBase() { m_AbilityID = UIDManager.Acquire(); } public virtual void OnInit() { } /// /// 进入当前ability的回调 /// public virtual void OnEnter() { } /// /// 退出当前ability的回调 /// public virtual void OnExit() { } /// /// 当前ability的update函数 /// public virtual void OnUpdate() { } /// /// 在物理模拟之后更新 /// public virtual void OnLateUpdate() { } /// /// 过渡到下一个ability的回调 /// /// public virtual void OnTranslate(AbilityBase to) { } /// /// 检测到hitbox碰撞时的回调 /// public virtual void OnHit() { } /// /// 检测到hurtbox碰撞时的回调 /// public virtual void OnHurt() { } /// /// 检测到defendbox碰撞时的回调 /// public virtual void OnDefend() { } }