Exemple #1
0
    public LGFsm(LGCtrl lgCtrl, StateEnum curStateEnum)
    {
        CurLGCtrl  = lgCtrl;
        m_StateDic = new Dictionary <StateEnum, LGState>();
        m_StateDic[StateEnum.Idle]   = new LGIdleState(this);
        m_StateDic[StateEnum.Move]   = new LGMoveState(this);
        m_StateDic[StateEnum.Jump]   = new LGJumpState(this);
        m_StateDic[StateEnum.Attack] = new LGAttackState(this);

        if (m_StateDic.ContainsKey(m_CurrStateEnum))
        {
            m_Curstate = m_StateDic[curStateEnum];
        }
    }
Exemple #2
0
    public override void ChangeState(StateEnum newStateEnum)
    {
        if (m_CurrStateEnum == newStateEnum)
        {
            return;
        }

        if (m_Curstate != null)
        {
            m_Curstate.OnExit();
        }

        m_LastStateEnum = m_CurrStateEnum;
        m_CurrStateEnum = newStateEnum;
        m_Curstate      = m_StateDic[newStateEnum];
        m_Curstate.OnEnter();
    }