Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private void DetectEnemy(float waitTime)
- {
- var enemyInRange = Physics.OverlapSphere(transform.position, _detectRadius, _enemyLayerMask);
- if (enemyInRange.Length == 0)
- {
- return;
- }
- closestEnemy = FindClosestEnemy(transform.position, enemyInRange);
- for (int i = 0; i < _activeWeaponList.Count; i++)
- {
- if (_activeWeaponList[i] != null)
- {
- var closestEnemyCollider = FindClosestEnemy(_activeWeaponList[i].transform.position, enemyInRange);
- if (closestEnemyCollider.GetComponent<Enemy>())
- {
- if (!closestEnemyCollider.GetComponent<Enemy>().enemyIsDead)
- {
- _activeWeaponList[i].SetInfoFromAttackController(closestEnemyCollider.transform);
- }
- else
- {
- _activeWeaponList[i].SetInfoFromAttackController(null);
- }
- }
- }
- }
- }
- private Collider FindClosestEnemy(Vector3 playerPosition, Collider[] enemies)
- {
- Collider closestEnemyCollider = null;
- float closestDistance = Mathf.Infinity;
- foreach (Collider enemy in enemies)
- {
- float distance = Vector3.Distance(playerPosition, enemy.transform.position);
- if (distance < closestDistance)
- {
- closestEnemyCollider = enemy;
- closestDistance = distance;
- }
- }
- return closestEnemyCollider;
- }
Advertisement
Add Comment
Please, Sign In to add comment