BaseGameState GetNextState() { if (curState.GetType().Equals(typeof(PrepareState))) { return(beforeState); } else if (curState.GetType().Equals(typeof(BeforeBattleState))) { return(battleState); } else { return(prepareState); } }
void ChangeState(Type type) { if (_nowState == null) { _nowState = GetState(type); _nowState.Enter(null); _willStateType = null; return; } if (_nowState.GetType() == type) { return; } if (_willStateType != null && _willStateType == type) { return; } _willStateType = type; _nowState.Leave(); }