コード例 #1
0
 private void SwitchToNewState(Type nextState)
 {
     currState.Exit();
     currState = availableStates[nextState];
     currState.Enter();
     OnStateChanged?.Invoke(currState); //??
 }
コード例 #2
0
    private void Update()
    {
        if (currState == null)
        {
            currState = availableStates.Values.First(); //first state is default
        }

        var nextState = currState?.Tick();

        if (nextState != null && nextState != currState?.GetType())
        {
            SwitchToNewState(nextState);
        }
    }