using System.Collections; using System.Collections.Generic; using UnityEngine; /// /// 每个角色拥有一个ablity system /// public class AbilitySystem { /// /// 当前执行的ability /// private AbilityBase m_Currrent; public AbilityBase Current { get { return m_Currrent; } } private List m_Abilities = new List(); public void ForceStart(AbilityBase ability) { if (ability == null) return; if (m_Currrent != null) m_Currrent.OnExit(); m_Currrent = ability; m_Currrent.OnEnter(); } public void AddAbility(AbilityBase ability) { m_Abilities.Add(ability); } public void OnUpdate() { if(m_Currrent != null) { m_Currrent.OnUpdate(); } } public void SwitchToAbility(AbilityBase targetAbility) { if (m_Currrent != null) m_Currrent.OnExit(); m_Currrent = targetAbility; m_Currrent.OnEnter(); } }