/// <summary> /// 设置为上个状态 /// </summary> public void ToLastState() { if (currentState == lastState) { return; } currentState.ExecuteLeave(); lastState.ExecuteEnter(); StatePath cachedCurrentState = currentState; currentState = lastState; lastState = cachedCurrentState; stateTime = 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(); }