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); }
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"); }
protected virtual void Awake() { IdleState = new EnemyIdleState(this, _enemy); KnockbackState = new EnemyKnockbackState(this, _enemy); DeathState = new EnemyDeathState(this, _enemy); }