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