Unity正确删除子物体的方式

删除一个物体的子物体,简单啊,循环遍历啊


上代码


运行!


诶?怎么还剩下两个?

因为,在循环运行当中,每当删除一个子物体,transform.childCount就会减1,而且正向循环中,是先删除最前面满足条件的,所以GetChild(i)中的i也是在不断的变化。


所以我们可以这样写


创建一个变量,每次执行一次,就index+1次,然后把transform.childCount少了的部分加回来,保持最开始的数值,使得循环次数完整。然后删除几个新的物体就会往前进几位。



当然这样太复杂了,最简单的方式是!

倒着来




我们加上限制条件一样没问题(网上流行的 DestroyImmediate(transform.GetChild(0).gameObject)带限制条件就不好用了)


当然不嫌麻烦的话还可以这样


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容