Exemplo n.º 1
0
    public void TransitionTo(int nextStateId)
    {
        AState prevState = GetCurrentState();
        AState nextState = GetState(nextStateId);

        if (prevState != null)
        {
            prevState.Leave(nextState);
        }

        CurrentStateId = nextStateId;

        if (nextState != null)
        {
            nextState.Enter(prevState);
        }
        else
        {
            CurrentStateId = AState.INVALID_STATE;
        }

        OnStateChanged.Invoke();
        OnHierarchyChanged.Invoke();
    }