Beispiel #1
0
    public void ChangeState(E_FSM_State_Type _state, params object[] args)
    {
        //没有这个状态 或 就是当前状态 就退出
        if (!m_allState.ContainsKey(_state) || _state == m_curState.state)
        {
            return;
        }
        if (m_curState == null)
        {
            return;
        }
        //本次状态退出
        m_curState.OnExit(args);
        //退出后把本次状态设为前一个状态
        m_priousState = m_curState;
        //根据想要更改的状态 去字典找 并设为当前状态
        m_curState = m_allState[_state];

        m_curState.OnEnter(args);
    }
Beispiel #2
0
 public PlayerIdle(E_FSM_State_Type _state, Player _p) : base(_state, _p)
 {
 }
Beispiel #3
0
 public PlayerDead(E_FSM_State_Type _state, Player _p) : base(_state, _p)
 {
 }
Beispiel #4
0
 public PlayerLook(E_FSM_State_Type _state, Player _p) : base(_state, _p)
 {
 }
Beispiel #5
0
 public PlayerJump(E_FSM_State_Type _state, Player _p) : base(_state, _p)
 {
 }
Beispiel #6
0
 public PlayerVictory(E_FSM_State_Type _state, Player _p) : base(_state, _p)
 {
 }
Beispiel #7
0
 public T owner; //状态的拥有者方便后期调用
 public StateTemplates(E_FSM_State_Type _state, T t) : base(_state)
 {
     this.owner = t;
 }
Beispiel #8
0
 //初始化
 public FSMBase(E_FSM_State_Type _state)
 {
     this.state = _state;
 }