Пример #1
0
    public void PerformTransition(StateTransition trans)
    {
        if (trans == StateTransition.NullTransition)
        {
            return;
        }

        StateID id = _currentState.GetTargetState(trans);

        if (id == StateID.NullStateID)
        {
            return;
        }

        _currentStateID = id;
        foreach (FiniteState fs in _stateList)
        {
            if (fs.ID == _currentStateID)
            {
                _currentState.DoBeforeQuit();
                _currentState = fs;
                _currentState.DoBeforeEnter();
                break;
            }
        }
    }