public virtual void GotoState(int stateFlag, object param) { if (_currentState != null) { _currentState.EndState(stateFlag); _currentState = null; } if (_states.ContainsKey(stateFlag)) { _currentState = _states[stateFlag]; _currentState.Params = param; _currentState.BeginState(stateFlag); } }
/// <summary> /// 状态切换 /// </summary> /// <param name="stateFlag"></param> /// <returns></returns> public virtual bool GotoState(int stateFlag) { //结束当前状态 if (_currentState != null) { _currentState.EndState(stateFlag); _currentState = null; } if (_states.ContainsKey(stateFlag)) { _currentState = _states[stateFlag]; _currentState.Params = null; _currentState.BeginState(stateFlag); return(true); } return(false); }