How to create an array of Game Objects with different tags.

I’ve got four different types of objects each with different tags. I want to select them all and assign them to the same array. I have no problem combining them together in value with .length, but need to put them in as game objects so that I can use them again later as objects and not as a value. My goal is to combine all the colored groups into one array called AllDST. Thank you.

var AllDST : GameObject[];
var blueDST : GameObject[];
var redDST : GameObject[];
var greenDST : GameObject[];
var purpleDST : GameObject[];


function addToArray() //Combine all game objects into one array
	{
	
	blueDST =  GameObject.FindGameObjectsWithTag ("DBlue");
	redDST =  GameObject.FindGameObjectsWithTag ("DRed");
	greenDST =  GameObject.FindGameObjectsWithTag ("DGreen");
	purpleDST =  GameObject.FindGameObjectsWithTag ("DPurple");
	AllDST = GameObject[blueDST + redDST + greenDST + purpleDST]; //This is the magic I need solved. How do I combine all four Gameobject groups into one array?

	}

Please do not use answers to comment on a question, instead use comments.

1 Answer

1

You can do it manually like this:

function AddToArray(){
    blueDST =  GameObject.FindGameObjectsWithTag ("DBlue");
    redDST =  GameObject.FindGameObjectsWithTag ("DRed");
    greenDST =  GameObject.FindGameObjectsWithTag ("DGreen");
    purpleDST =  GameObject.FindGameObjectsWithTag ("DPurple");
    // calculate the resulting array size:
    var size = blueDST.Length + redDST.Length + greenDST.Length + purpleDST.Length;
    AllDST = new GameObject;
    var i = 0;
    var obj: GameObject;
    for (obj in blueDST) AllDST[i++] = obj; // copy blue array first...
    for (obj in redDST) AllDST[i++] = obj; // copy red array after it...
    for (obj in greenDST) AllDST[i++] = obj; // then green array...
    for (obj in purpleDST) AllDST[i++] = obj; // and finally purple array
}