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*);*
}
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]: Recursively get all children - Questions & Answers - Unity Discussions
[2]: How To Get List of Child Game Objects - Questions & Answers - Unity Discussions
[3]: How to get an array of all children of any type, but not their children ? - Questions & Answers - Unity Discussions