private void TeleportClosestEnemyOrPlayer() { GameObject[] enemies = GameObject.FindGameObjectsWithTag("Enemy"); GameObject closestEnemy = GameObject.FindGameObjectWithTag("Player"); float closestEnemyDistance = (closestEnemy == null) ? 100 : Vector3.Distance(closestEnemy.transform.position, transform.position); bool foundEnemyCloserThanPlayer = false; foreach (var enemy in enemies) { float dist = Vector3.Distance(enemy.transform.position, transform.position); if (dist < closestEnemyDistance) { closestEnemyDistance = dist; closestEnemy = enemy; foundEnemyCloserThanPlayer = true; } } if (!foundEnemyCloserThanPlayer) { _agentController.TeleportPlayer(); } else { closestEnemy.GetComponent <Enemy>().SelfDestroy(); _agentController.DecrementAgentTeleportTrapRemaining(); } }