EnemyMovement.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using UnityEngine;
  2. using System.Collections;
  3. public class EnemyMovement : MonoBehaviour
  4. {
  5. Transform player;
  6. PlayerHealth playerHealth;
  7. EnemyHealth enemyHealth;
  8. UnityEngine.AI.NavMeshAgent nav;
  9. public bool isElite;
  10. public float speedTimer;
  11. float skillCD=3;
  12. Animator anim;
  13. public PlayerHealth GetPlayer { get { return playerHealth; } }
  14. void Awake ()
  15. {
  16. player = GameObject.FindGameObjectWithTag ("Player").transform;
  17. playerHealth = player.GetComponent <PlayerHealth> ();
  18. enemyHealth = GetComponent <EnemyHealth> ();
  19. nav = GetComponent <UnityEngine.AI.NavMeshAgent> ();
  20. anim = GetComponent<Animator>();
  21. }
  22. void Update ()
  23. {
  24. if (enemyHealth.currentHealth > 0 && playerHealth.currentHealth > 0)
  25. {
  26. nav.SetDestination(player.position);
  27. skillCD -= Time.deltaTime;
  28. if (isElite && Vector3.Distance(transform.position, player.position) < 8 && skillCD <= 0)
  29. {
  30. speedTimer += Time.deltaTime;
  31. if (speedTimer < 2)
  32. {
  33. nav.speed = 8;
  34. anim.SetBool("Speed", true);
  35. }
  36. else { nav.speed = 3; anim.SetBool("Speed", false); skillCD = 3; }
  37. }
  38. else speedTimer = 0;
  39. }
  40. else
  41. {
  42. nav.enabled = false;
  43. }
  44. }
  45. }