首页 > 其他 > 详细

销毁物体:Destroy、DestroyImmediate、DestroyObject

时间:2021-05-31 11:35:20      阅读:42      评论:0      收藏:0      [点我收藏+]

原文链接:https://blog.csdn.net/NCZ9_/article/details/84203714

参考链接:https://blog.csdn.net/lee514/article/details/80995048

方法一:GameObject.Destroy(游戏物体(gameObject类型));

GameObject.Destroy(gameObject,2.0f);

Destory是静态方法,用类名加点的形式调用

方法中有两个参数

gameObject表示要销毁的游戏对象自身

2.0f表示2秒后销毁,可以任意指定时间

也可以用随机数函数生成随机的销毁时间,例如:Random.Range(1.0f,5.0f),表示1到5秒之间的秒数销毁游戏对象。

方法二:GameObject.DestroyImmediate(游戏物体(gameObject类型));

方法三:GameObject.DestroyObject(游戏物体(gameObject类型));

方法在脚本继承MonoBehaviour时可直接使用,无需通过GameObject调用。

  • DestroyImmediate立即销毁目标,并将目标置为null,且将目标的所有上层引用置空。
  • Destroy则在本帧结束前,渲染之前销毁目标和上层引用。不会立即销毁,Destroy调用后,目标数据仍然存在,不为null,上层引用也正常。注意:在同一帧,会出现前面代码已经用Destroy销毁了某物体,但后面仍然能够获取到的情况。就是因为Destroy在下一帧才会完成销毁操作。如果立即销毁,则使用DestroyImmediate。
  • 推荐使用Destroy代替DestroyImmediate,原因是DestroyImmediate是立即销毁,立即释放资源,做这个操作的时候,会消耗很多时间,影响主线程运行。Destroy是异步销毁,一般在下一帧销毁,不会影响主线程的运行



销毁物体:Destroy、DestroyImmediate、DestroyObject

原文:https://www.cnblogs.com/yifengs/p/14829977.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!