internal void AddBehavior(BaseBehaviour behaviour) { if (!behaviour.IsAlive()) { m_BehaviourOrdered.Add(behaviour); m_AddBehavioursCache.Add(behaviour); } else { MDebug.LogError("Core" , $"AddBehavior ({behaviour.GetName()}) failed. It already alive."); } }
internal void RemoveBehavior(BaseBehaviour behaviour) { if (behaviour.IsAlive()) { behaviour.SetEnable(false); behaviour.SetAlive(false); m_BehaviourOrdered.DeleteByIndex(m_BehaviourOrdered.GetIndexByKey(behaviour)); m_RemoveBehavioursCache.Add(behaviour); } else { MDebug.LogError("Core" , $"RemoveBehavior ({behaviour.GetName()}) failed. It doesn't alive."); } }