ESpirits_Assassin.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. public enum AssassinState
  5. {
  6. Normal = 0, //Õý³£×´Ì¬
  7. FindPlayer = 1, //ѰÕÒÖ÷½ÇλÖÃ
  8. }
  9. public class ESpirits_Assassin : MonoBehaviour
  10. {
  11. [HideInInspector]
  12. public float time;
  13. public float CD;
  14. public float hateDistance;
  15. public AssassinState state;
  16. public Enemy enemy;
  17. private void Update()
  18. {
  19. switch (state)
  20. {
  21. case AssassinState.Normal:
  22. time += Time.deltaTime;
  23. if (time > CD)
  24. {
  25. enemy.isSpiritsAttack = true;
  26. state = AssassinState.FindPlayer;
  27. }
  28. break;
  29. case AssassinState.FindPlayer:
  30. float distance0 = Mathf.Abs(PlayersInput.instance[0].transform.position.x
  31. - transform.position.x);
  32. float distance1 = Mathf.Abs(PlayersInput.instance[1].transform.position.x
  33. - transform.position.x);
  34. if (distance0<=distance1)
  35. {
  36. enemy.targetCharacter = PlayersInput.instance[0];
  37. }
  38. else
  39. {
  40. enemy.targetCharacter = PlayersInput.instance[1];
  41. }
  42. enemy.ChangeState(CharacterState.Run);
  43. break;
  44. }
  45. }
  46. }