objectToDestroy.Add(g) only happens on the sender... and what's the point of objectToDestroy anyway? transform.childCount tells you the number of children, transform.GetChild(i) gets you the child. Careful using indices though. It's better to identify by some ID instead. When creating objects, pass some ID. When destroying, find the child by the same ID.