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