Unity开发——Destory延迟销毁导致异常的处理

一、简单介绍Destory

Unity中,Destory是用于销毁物体对象,物体组件,游戏资源的方法;

是Unity中用于管理对象生命周期、释放资源的重要方法,合理使用它可以有效地优化游戏性能和内存管理。

1、函数方法介绍:
public static void Destroy(Object obj, float time = 0.0f);

obj:要销毁的对象,可以是物体,组件,资源;

time:可指定延迟多久后再执行销毁操作,以秒为单位;

如果没有指定时间参数,默认会在当前帧结束后,渲染前销毁对象。

(指不指定,都不会立马销毁物体)

2、销毁不同对象的异同:

(1)GameObject:会销毁该对象及其组件和所有子物体;

(2)Component:会将该组件从所属的GameObject身上移除销毁;

(3)Asset:一些加载进来的资源,如纹理、材质等,都可以使用Destory进行销毁;

二、使用Destory注意事项

1、物品销毁存在时间延迟:并不是执行Destory语句后,就立马对物品进行销毁!!!

实际的对象销毁操作,总是延迟到当前帧结束后,渲染前销毁对象。

执行Destory语句后,在当前帧的剩余时间里,要被销毁的对象仍然存在,并且可以被访问和操作的!!!

同一帧里,前面的代码执行Destory销毁物体,但物品还是存在状态,后面的代码仍然能检测获取到物体。

如:玩家身上有装备,先从玩家身上卸下/销毁,然后才能将新物品替换上去,因为destory是延迟销毁,不是立马销毁

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值