Eonirr

DOD

Feb 6th, 2026 (edited)
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.46 KB | None | 0 0
  1. using UnityEngine;
  2. using System.Collections.Generic;
  3.  
  4. public struct EnemyData
  5. {
  6. public float health;
  7. public float speed;
  8. }
  9.  
  10. public class EnemySpawner : MonoBehaviour
  11. {
  12. public EnemyHandler enemyHandler;
  13. public GameObject enemyPrefab;
  14.  
  15. void Spawn()
  16. {
  17. var go = Instantiate(enemyPrefab);
  18. enemyHandler.RegisterEnemy(go.transform, 100f, 3f);
  19. }
  20. }
  21.  
  22. public class EnemyHandler : MonoBehaviour
  23. {
  24. public Transform target;
  25.  
  26. List<Transform> transforms = new();
  27. List<EnemyData> enemies = new();
  28.  
  29. public void RegisterEnemy(Transform t, float health, float speed)
  30. {
  31. transforms.Add(t);
  32. enemies.Add(new EnemyData
  33. {
  34. health = health,
  35. speed = speed
  36. });
  37. }
  38.  
  39. void Update()
  40. {
  41. Vector3 targetPos = target.position;
  42.  
  43. for (int i = enemies.Count - 1; i >= 0; i--)
  44. {
  45. if (enemies[i].health <= 0f)
  46. {
  47. Destroy(transforms[i].gameObject);
  48.  
  49. transforms.RemoveAt(i);
  50. enemies.RemoveAt(i);
  51. continue;
  52. }
  53.  
  54. Vector3 dir = (targetPos - transforms[i].position).normalized;
  55. transforms[i].position += dir * enemies[i].speed * Time.deltaTime;
  56. }
  57. }
  58.  
  59. public void Damage(int index, float dmg)
  60. {
  61. EnemyData e = enemies[index];
  62. e.health -= dmg;
  63. enemies[index] = e;
  64. }
  65. }
Advertisement
Add Comment
Please, Sign In to add comment