- Home /
strange behaviour when creating and deleting objects with tags
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?
hi. the actual code is above.
GameObject[] garageArray = GameObject.FindGameObjectsWithTag ("Garage");
that gives me an array with the size of all created objects with that tag, even if they were destroyed before i call this line. i have no error there are only null elements in the array... but i destroyed the object they are referencing. so why there still are references???
Answer by YoungDeveloper · Aug 20, 2015 at 07:24 PM
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.
How do you know? What's the error? Post actual relevant code which creates, collects, destroys and throws error! If gameobject is destroyed in scene, reference to it is broken and it is null.
Is it possible that you are trying to access primitive array using index array[index] without checking for null first?
Your answer
Follow this Question
Related Questions
Destroy gameobject by tag (.js) 3 Answers
GameObject.FindGameObjectsWithTag still finding destroyed object (C#) 1 Answer
setActive on object in separate scene 2 Answers
Count the contents of the list from FindGameObjectsWithTag 1 Answer
Destroy object on touch of object with specific class 3 Answers