예제 #1
0
 private void SetIdleState()
 {
     if (!sm.IsActualState <LaserEnemy_R_IdleState>())
     {
         sm.SetState <LaserEnemy_R_IdleState>();
     }
 }
예제 #2
0
 protected override void Awake()
 {
     base.Awake();
     sm = new StateMachineClassic();
     sm.AddState(new LaserEnemy_R_CastLaserState(sm, this));
     sm.AddState(new LaserEnemy_R_IdleState(sm, this));
     sm.SetState <LaserEnemy_R_IdleState>();
     anim   = GetComponent <Animator>();
     target = FindObjectOfType <Player>();
 }
 private void Start()
 {
     _sm = new StateMachineClassic();
     _sm.AddState(new EnemyRangedMetheoriteSpawner_AttackState(_sm, this));
     _sm.AddState(new EnemyRangedMetheoriteSpawner_SpawnState(_sm, this));
     _sm.AddState(new EnemyRangedMetheoriteSpawner_CooldownState(_sm, this));
     _sm.AddState(new EnemyRangedMetheoriteSpawner_PathfindingState(_sm, this, FindObjectOfType <NodesList>().GetNodes()));
     _sm.SetState <EnemyRangedMetheoriteSpawner_SpawnState>();
     attackTimer = 0;
 }
    public void MakeAttack()
    {
        if (_sm.IsActualState <EnemyRangedMetheoriteSpawner_AttackState>())
        {
            return;
        }

        SetVelocity(transform.forward * 0);
        _sm.SetState <EnemyRangedMetheoriteSpawner_AttackState>();
    }
예제 #5
0
 public void ChangeState <T>() where T : State
 {
     _stateMachine.SetState <T>();
 }