FindGameObjectsWithTag check gameObject disabled?

Hello! I use scpipt below for automatic aiming at the nearest target.
But when i disabled(or destroy) my target, unity report me “IndexOutOfRangeException: Array index is out of range.”

I guess, that i need add check disabled or not my target, but i don’t understant how do that, if i try check player2.active == false - it always write “true”, even if i destroy it, help me please!!!

var waypoints: GameObject[] ;
var player2: GameObject[] ;
var player3: GameObject[] ;
   
function Update () {

    player2 = GameObject.FindGameObjectsWithTag("Player2"); 
    player3 = GameObject.FindGameObjectsWithTag("Player3"); 

    var waypoints = new GameObject[player2.length + player3.length];
    waypoints[0] = player2[0] ; 
    waypoints[1] = player3[0] ;
        	        
    var closest: GameObject; 
    var closestDist = Mathf.Infinity; 

    for (waypoint in waypoints) { 
        if(waypoint == "ComputerCar"){print("sefef");}
        var dist = (transform.position - waypoint.transform.position).sqrMagnitude; 
		
        if (dist < closestDist) { 
            closestDist = dist; 
            closest = waypoint; 
            }
    } 
    transform.LookAt(closest.transform);

Destroy script

function Detonate () {
	
	gameObject.active = false;
	Invoke("RecoverDelay", 2);
	Invoke("HealtDelay", 5);
	
	// Create the explosion
	if (explosion)
		Instantiate (explosion, transform.position, transform.rotation);
}

function RecoverDelay (){
	gameObject.active = true;
}

function HealtDelay (){
	hitPoints = 100.0;
}

replace

waypoints[0] = player2[0] ; 
waypoints[1] = player3[0] ;

with

if(player2 != null) waypoints[0] = player2[0] ; //waypoints[0] = player2[0] ; 
if(player3 != null) waypoints[1] = player3[0] ; //waypoints[0] = player2[0] ;   

I would even Change FindObjectsWithTag to FindWithTag, because I am assuming there will only be 1 player2 instance and 1 player3 instance in the scene.

The FindWithTag function will return null if no object is found(FindObjectsWithTag works the same way too, it returns null if no objects are found). It will not find disabled objects either.

Here is the reference: http://docs.unity3d.com/Documentation/ScriptReference/GameObject.FindWithTag.html