Eonirr

Untitled

Mar 24th, 2025
23
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.45 KB | None | 0 0
  1. private void DetectEnemy(float waitTime)
  2. {
  3. var enemyInRange = Physics.OverlapSphere(transform.position, _detectRadius, _enemyLayerMask);
  4.  
  5. if (enemyInRange.Length == 0)
  6. {
  7. return;
  8. }
  9.  
  10. closestEnemy = FindClosestEnemy(transform.position, enemyInRange);
  11.  
  12. for (int i = 0; i < _activeWeaponList.Count; i++)
  13. {
  14. if (_activeWeaponList[i] != null)
  15. {
  16. var closestEnemyCollider = FindClosestEnemy(_activeWeaponList[i].transform.position, enemyInRange);
  17.  
  18. if (closestEnemyCollider.GetComponent<Enemy>())
  19. {
  20. if (!closestEnemyCollider.GetComponent<Enemy>().enemyIsDead)
  21. {
  22. _activeWeaponList[i].SetInfoFromAttackController(closestEnemyCollider.transform);
  23. }
  24. else
  25. {
  26. _activeWeaponList[i].SetInfoFromAttackController(null);
  27. }
  28. }
  29. }
  30. }
  31. }
  32.  
  33. private Collider FindClosestEnemy(Vector3 playerPosition, Collider[] enemies)
  34. {
  35. Collider closestEnemyCollider = null;
  36. float closestDistance = Mathf.Infinity;
  37.  
  38. foreach (Collider enemy in enemies)
  39. {
  40. float distance = Vector3.Distance(playerPosition, enemy.transform.position);
  41.  
  42. if (distance < closestDistance)
  43. {
  44. closestEnemyCollider = enemy;
  45. closestDistance = distance;
  46. }
  47. }
  48. return closestEnemyCollider;
  49. }
Advertisement
Add Comment
Please, Sign In to add comment