Пример #1
0
    /// <summary>
    /// 设置为上个状态
    /// </summary>
    public void ToLastState()
    {
        if (currentState == lastState)
        {
            return;
        }

        currentState.ExecuteLeave();
        lastState.ExecuteEnter();
        StatePath cachedCurrentState = currentState;

        currentState = lastState;
        lastState    = cachedCurrentState;
        stateTime    = 0;
    }
Пример #2
0
    /// <summary>
    /// 设置状态
    /// </summary>
    /// <param name="_s">S.</param>
    public void SetState(StatePath _s)
    {
        if (!allState.ContainsKey(_s.stateName) || currentState == _s)
        {
            return;
        }

        if (currentState != null)
        {
            currentState.ExecuteLeave();
        }


        lastState    = currentState;
        currentState = _s;
        stateTime    = 0;
        currentState.ExecuteEnter();
    }