Пример #1
0
    public IEnumerator GoTo(State state)
    {
        if (state == Current)
        {
            yield break;
        }

        if (Current != null)
        {
            yield return(Current.TransitionOut(state));

            OnStateExited?.Invoke(Current);
        }

        yield return(state.TransitionIn(Current));

        Current = state;
        OnStateEntered?.Invoke(Current);
        _states.Add(Current);
    }
Пример #2
0
 public StateMachine(State initialState)
 {
     CurrentState = initialState;
     CurrentState.TransitionIn();
 }
Пример #3
0
 public virtual void SwitchState(State newState)
 {
     CurrentState.TransitionIn();
     CurrentState = newState;
     CurrentState.TransitionIn();
 }
Пример #4
0
 public StateMachine(State initialState)
 {
     CurrentState = initialState;
     CurrentState.TransitionIn();
 }
Пример #5
0
 public virtual void SwitchState(State newState)
 {
     CurrentState.TransitionIn();
     CurrentState = newState;
     CurrentState.TransitionIn();
 }