hi.
i am observing a very strange behavior in my project. not sure, if i am just missing something or it is a bug.
I am creating GameObjects at runtime and give them tags.
GameObject currGarage = new GameObject (); currGarage.tag = "Garage";
later, i create a list and add objects with this tag to the list:
GameObject[] garageArray = GameObject.FindGameObjectsWithTag ("Garage");
foreach(GameObject g in garageArray) {
if(g != null) {
allGarages.Add(g);
} else {
Debug.Log("object null");
}
}
then, at some point, i delete all objects in this list:
foreach (GameObject g in appLogic.garageManager.allGarages) {
g.SetActive(true);
Destroy (g);
}
after that i create again some new GameObjects with that tag and write them into a new array:
GameObject[] garageArray = GameObject.FindGameObjectsWithTag ("Garage");
now i have an array of the size of all Gameobjects with that tag ever created. even if i delete objects, unity keeps referencing them.
Am i doing something wrong? Or is it normal behaviour? I just want the “fresh” objects, without references to the destroyed ones…
someone knows more about this issue?