Unity中Destory销毁对象不是立即销毁

Unity中 Destory()函数销毁对象时不是立刻销毁的,他是一个延迟执行的函数,是在当前帧之后,渲染帧之前销毁对象,例如下面代码:

Destroy(transform.GetChild(0).gameObject);
Debug.Log(transform.childCount);

子物体只有一个,当用Destory函数销毁子物体后,打印子物体个数还是1。

解决方法:
使用DestroyImmediate函数,他是立即销毁对象。

DestroyImmediate(transform.GetChild(0).gameObject);
Debug.Log(transform.childCount);

得到的结果是0。


版权声明:本文为sjjhgq原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。