public virtual void ChangeState(int nextID) { var nextState = listStates_.Where(o => o.GetID().Equals(nextID)).SingleOrDefault(); Assert.IsTrue(nextState != null, string.Format("상태를 찾을 수 없습니다. {0}", nextID)); Current?.OnLeave(); Current = nextState; Current?.OnEnter(); }
protected virtual FiniteState AddState(FiniteState state) { var duplicate = listStates_.Find(o => o.GetID() == state.GetID()); if (duplicate == null) { listStates_.Add(state); return(state); } else { return(null); } }