/// <summary> /// Switch camera's target with a new one /// </summary> /// <param name="newTarget"></param> public void SwitchTarget(Transform newTarget = null) { // TODO: Hcaer una versión limpia if (newTarget == null) { currentTarget = targetPlayer; EnemyAnalyzer.Release(); //targetOffset.x = 3; } else { // TODO: Sustituirlo del todo currentTarget = newTarget; EnemyAnalyzer.Release(); EnemyAnalyzer.Assign(newTarget); //targetOffset.x = 0; } // In any case //targetOffset.y = 0; }
// void SwitchToNearestInWorldEnemy() { //Debug.Log("Switching to nearest enemy in world " + EnemyAnalyzer.lastEnemyPosition); // Transform enemyToSwitch = null; float nearestDistance; // Targeteable[] enemies = FindObjectsOfType <Targeteable>(); List <Targeteable> targeteableEnemies = FilterActiveTargeteables(enemies); // if (targeteableEnemies.Count > 0) { enemyToSwitch = targeteableEnemies[0].transform; nearestDistance = (enemyToSwitch.position - EnemyAnalyzer.lastEnemyPosition).magnitude; } else { SwitchTarget(); return; } // for (int i = 1; i < targeteableEnemies.Count; i++) { float nextOnedistance = (targeteableEnemies[i].transform.position - EnemyAnalyzer.lastEnemyPosition).magnitude; if (nextOnedistance < nearestDistance) { enemyToSwitch = targeteableEnemies[i].transform; nearestDistance = nextOnedistance; } } // EnemyAnalyzer.Release(); EnemyAnalyzer.Assign(enemyToSwitch); SwitchTarget(enemyToSwitch); }