示例#1
0
    protected override void InitStateMachine()
    {
        m_FSM      = new FSMSystem();
        m_FSM.attr = attr;

        idleState  = new EnemyIdleState();
        moveState  = new EnemyMoveState();
        fightState = new EnemyFightState();
        deathState = new EnemyDeathState();



        m_FSM.AddState(idleState, this);
        idleState.AddTransition(Transition.IsMove, StateID.Move);
        idleState.AddTransition(Transition.IsFight, StateID.Fight);


        m_FSM.AddState(moveState, this);
        moveState.AddTransition(Transition.IsIdle, StateID.Idle);
        moveState.AddTransition(Transition.IsFight, StateID.Fight);


        m_FSM.AddState(fightState, this);
        fightState.AddTransition(Transition.IsIdle, StateID.Idle);

        m_FSM.AddState(deathState, this);

        //初始状态为Idle
        m_FSM.SetCurrentState(idleState);
    }
示例#2
0
 private void Awake()
 {
     //Initialise
     StateMachine = new EnemyStateMachine();
     IdleState    = new EnemyIdleState(this, StateMachine, enemyData, "idle");
     MoveState    = new EnemyMoveState(this, StateMachine, enemyData, "move");
     AttackState  = new EnemyAttackState(this, StateMachine, enemyData, "inAttack");
     DeathState   = new EnemyDeathState(this, StateMachine, enemyData, "isDead");
 }
示例#3
0
 protected virtual void Awake()
 {
     IdleState      = new EnemyIdleState(this, _enemy);
     KnockbackState = new EnemyKnockbackState(this, _enemy);
     DeathState     = new EnemyDeathState(this, _enemy);
 }