- Home /
How to find all GameObjects in a parent in shorter code than I figured out
I'm trying to find a way but it seems many Question for GameObject and answer to that points me to Transform
I want GameObject not transform
and my ending doing codes:
foreach( GameObject GOs in gameObject) {
Destroy(GOs);
}
Assets/Scripts/CreateFloor.cs(164,17): error CS1579: foreach statement cannot operate on variables of type `UnityEngine.GameObject' because it does not contain a definition for `GetEnumerator' or is not accessible
foreach( GameObject GOs in transform) {
Destroy(GOs);
}
seems to work fine but when I test it
InvalidCastException: Cannot cast from source type to destination type.
CreateFloor.DestroyFloorF () (at Assets/Scripts/CreateFloor.cs:164)
ShowFloor.OnTriggerExit (UnityEngine.Collider Other) (at Assets/Scripts/ShowFloor.cs:47)
and at last this one seems to be working:
List<GameObject> children = new List<GameObject>();
foreach (Transform child in transform) children.Add(child.gameObject);
for (int i = 0; i < children.Count; i++) {
Destroy(children[i]);
}
witch seems to me a bit big and clumsy is this the only way to get rid of children? and I want to destroy them. not deactivate or anything.
[1]: http://answers.unity3d.com/questions/280231/recursively-get-all-children.html
[2]: http://answers.unity3d.com/questions/205391/how-to-get-list-of-child-game-objects.html
[3]: http://answers.unity3d.com/questions/38760/how-to-get-an-array-of-all-children-of-any-type-bu.html
Answer by Tarlius · Mar 31, 2013 at 12:00 PM
I think you just want to do this:
foreach (Transform child in transform) {
Destroy(child.gameObject);
}
exactly thanks
didn't know I have to put child.gameObject tho :)
Your answer
Follow this Question
Related Questions
Distribute terrain in zones 3 Answers
How can I LERP the X position to the X position of the player 2 Answers
Add Pointer Down event trigger only to parent object. 1 Answer
Get all children gameObjects 5 Answers
Multiple Cars not working 1 Answer