Unity Destroy和DestroyImmediate

时间:2021-08-04 19:49:59

Destroy(Object obj, float t = 0.0F);

删除一个游戏对象,组件或者资源.

物体obj现在被销毁或在指定了t时间过后销毁。如果obj是组件,它将从GameObject销毁组件component。如果obj是GameObject它将销毁GameObject全部它的组件和
GameObject全部transform子物体。实际物体的销毁总是延迟到当前更新循环后,但总是渲染之前完成。

实际上销毁该物体后,内存并没有立即释放 而是在你下下个场景中槽释放内存资源,就是你a场景中Destroy了 一般是在c场景中才真正释放该物体的内存资源

DestroyImmediate(Object obj, true/false);

立即销毁物体obj,强烈建议使用Destroy代替。

该函数只在写编辑器代码时使用,因为延时的销毁永远不会在编辑模式下调用。在游戏代码推荐使用Object.Destroy代替。销毁总是延迟的(但在同一帧内执行),小心使用该函数,因为它能永久销毁资源。