Пример #1
0
 public void AddState(GKStateMachineStateBase <STATE_ID_T> state, bool asDefault)
 {
     _states.Add(state);
     if (asDefault)
     {
         _defaultState = state;
         _lastState    = state;
     }
 }
Пример #2
0
 public void GoToState(STATE_ID_T targetStateId)
 {
     if (_currentState == null || !targetStateId.Equals(_currentState.ID))
     {
         GKStateMachineStateBase <STATE_ID_T> targetState = _GetStateById(targetStateId);
         if (targetState != null)
         {
             _GoToState(targetState);
         }
     }
 }
Пример #3
0
        void _GoToState(GKStateMachineStateBase <STATE_ID_T> targetState)
        {
            if (targetState == null)
            {
                return;
            }

            if (_currentState != null)
            {
                _currentState.Exit();
            }

            if (null != _currentState)
            {
                //Debug.Log(string.Format("Set last state: {0}, Current state: {1}, Target state:{2}",_lastState.ID.ToString(), _currentState.ID.ToString(), targetState.ID.ToString()));
                _lastState = _currentState;
            }
            _currentState = targetState;

            targetState.Enter();
        }