Exemple #1
0
        void ChangeStateInternal(AltoState nextState)
        {
            if (logVerbose)
            {
                string currentStateName = (_currentState != null) ? _currentState.GetType().Name : "null";
                Log($"{currentStateName} <color=#f894fc>-></color> {nextState.GetType().Name}");
            }

            if (_currentState != null)
            {
                _currentState.onExitNextState = nextState;
                _currentState.Exit();
            }
            nextState.onEnterPrevState = _currentState;
            _currentState = nextState;
            nextState.Enter();
        }
Exemple #2
0
 /// <summary>
 /// ステートを変更する。 Exit / Enter のハンドラは呼ばれない。
 /// 初期ステートの設定に使う
 /// </summary>
 public void SetState <TState>() where TState : AltoState, new()
 {
     _currentState = GetOrCreateState <TState>();
 }