예제 #1
0
        private void DoShooting(DragonStateMachine stateMachine)
        {
            stateMachine.SetShootAnim(true);

            if (Vector3.Distance(stateMachine.navAgent.transform.position, stateMachine.navAgent.destination) > stateMachine.enemy.stats.ShootingRange)
            {
                stateMachine.enemy.conditions.isShootingRange = false;
                stateMachine.enemy.conditions.canShoot        = false;
                stateMachine.StopCoroutine("CounterToIsShootOn");
                stateMachine.enemy.conditions.isWait = false;
                stateMachine.SetShootAnim(false);
            }
        }
예제 #2
0
 private void DoPursuit(DragonStateMachine stateMachine)
 {
     stateMachine.navAgent.isStopped = false;
     if (stateMachine.navAgent.destination != GameManager.Instance.player.transform.position)
     {
         stateMachine.navAgent.SetDestination(GameManager.Instance.player.transform.position);
     }
     if (Vector3.Distance(stateMachine.navAgent.transform.position, stateMachine.navAgent.destination) <= stateMachine.enemy.stats.ShootingRange)
     {
         stateMachine.enemy.conditions.isShootingRange = true;
         stateMachine.enemy.conditions.isChasing       = false;
         stateMachine.ShootingMonobehaviour();
     }
     else if (Vector3.Distance(stateMachine.navAgent.transform.position, stateMachine.navAgent.destination) > stateMachine.enemy.stats.ShootingRange)
     {
         stateMachine.enemy.conditions.isShootingRange = false;
         stateMachine.enemy.conditions.canShoot        = false;
         stateMachine.StopCoroutine("CounterToIsShootOn");
         stateMachine.enemy.conditions.isWait = false;
     }
 }