12 第1页 | 共2 页下一页
返回列表 发新帖
查看: 9484|回复: 13
打印 上一主题 下一主题

[经验分享] 强烈建议大家使用DestroyImmediate,而不是Destroy来删除物体。

[复制链接]

18

主题

1

听众

260

积分

设计实习生

Rank: 2

纳金币
36
精华
0

最佳新人

跳转到指定楼层
楼主
发表于 2014-1-7 20:38:16 |只看该作者 |倒序浏览
官方API说强烈建议使用Destroy代替DestroyImmediate,结果被坑了。
大家可以自己试试,
使用Destroy,然后调用其他方法(如Start),GameObject根本不能被销毁。
DestroyImmediate就不存在这问题。

大家知道这是为什么吗?

by the way,Unity可以像android开发一样看API的源代码就好了。。

分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

40

主题

0

听众

2万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
279
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

沙发
发表于 2014-1-7 21:10:11 |只看该作者
我使用Destroy没有发现什么问题啊?!
回复

使用道具 举报

2722

主题

42

听众

3万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
38268
精华
111

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

板凳
发表于 2014-1-7 23:12:42 |只看该作者
Destroy貌似不会有啥问题啊
回复

使用道具 举报

ku 智囊团   

89

主题

2

听众

5万

积分

首席设计师

Rank: 8Rank: 8

纳金币
25
精华
1

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

地板
发表于 2014-1-8 08:11:27 |只看该作者
一个是立即断开与所有资源的关联并销毁,一个是等几有与其关联的资源离开计算范围后它才销毁
回复

使用道具 举报

10

主题

8

听众

1872

积分

助理设计师

Rank: 4

纳金币
188
精华
0

活跃会员

5#
发表于 2014-1-8 08:55:59 |只看该作者
一直用的Destory
回复

使用道具 举报

1088

主题

6

听众

6812

积分

高级设计师

Rank: 6Rank: 6

纳金币
2272
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

6#
发表于 2014-1-8 21:36:26 |只看该作者
晕Destroy后Assets再释放一下unused资源就行了。
回复

使用道具 举报

18

主题

1

听众

260

积分

设计实习生

Rank: 2

纳金币
36
精华
0

最佳新人

7#
发表于 2014-1-8 23:00:05 |只看该作者
libufan 发表于 2014-1-7 21:10
我使用Destroy没有发现什么问题啊?!

我代码有问题吗?

先:
DestroyImmediate(SubObjects);//使用Destroy(SubObjects)绝对删除不了



然后:
SequenceObjectButRandomSprite(){

        GameObject newObject = new GameObject();
               
        newObject.name = xxx;

              
        newObject.transform.parent = ThisGameObject.transform;

        newObject.transform.localScale = new Vector3(xxx);
      
              
        newObject.transform.localPosition = new Vector3(xxx);

        UISprite uisprite = newObject.AddComponent<UISprite>();

        uisprite.atlas = MyUIAtlas;

        uisprite.spriteName = xxx;

        newObject.AddComponent<BoxCollider>();

        newObject.AddComponent<UIButtonColor>();

xxx


}
回复

使用道具 举报

18

主题

1

听众

260

积分

设计实习生

Rank: 2

纳金币
36
精华
0

最佳新人

8#
发表于 2014-1-8 23:01:03 |只看该作者
狂风大尉 发表于 2014-1-7 23:12
Destroy貌似不会有啥问题啊

我代码这样写有冲突吗?

先:
DestroyImmediate(SubObjects);//使用Destroy(SubObjects)绝对删除不了



然后:
SequenceObjectButRandomSprite(){
xxx
        GameObject newObject = new GameObject();
               
        newObject.name = xxx;

              
        newObject.transform.parent = ThisGameObject.transform;

        newObject.transform.localScale = new Vector3(xxx);
      
              
        newObject.transform.localPosition = new Vector3(xxx);

        UISprite uisprite = newObject.AddComponent<UISprite>();

        uisprite.atlas = MyUIAtlas;

        uisprite.spriteName = xxx;

        newObject.AddComponent<BoxCollider>();

        newObject.AddComponent<UIButtonColor>();

xxx


}
回复

使用道具 举报

18

主题

1

听众

260

积分

设计实习生

Rank: 2

纳金币
36
精华
0

最佳新人

9#
发表于 2014-1-8 23:04:47 |只看该作者
ku 发表于 2014-1-8 08:11
一个是立即断开与所有资源的关联并销毁,一个是等几有与其关联的资源离开计算范围后它才销毁 ...

如果这样的话,那我碰到的现象可能就好解释了。我要删除的gameObjec是我代码new的,我为这些new的gameObject添加了一些组件,还和NGUI的Atlas中的sprite有引用关系,所以Unity就一直不让删除。

代码如下:
先:
DestroyImmediate(SubObjects);//使用Destroy(SubObjects)删除不了

然后:
SequenceObjectButRandomSprite(){

        GameObject newObject = new GameObject();
               
        newObject.name = xxx;

              
        newObject.transform.parent = ThisGameObject.transform;

        newObject.transform.localScale = new Vector3(xxx);
      
              
        newObject.transform.localPosition = new Vector3(xxx);

        UISprite uisprite = newObject.AddComponent<UISprite>();

        uisprite.atlas = MyUIAtlas;

        uisprite.spriteName = xxx;

        newObject.AddComponent<BoxCollider>();

        newObject.AddComponent<UIButtonColor>();

xxx


}
回复

使用道具 举报

18

主题

1

听众

260

积分

设计实习生

Rank: 2

纳金币
36
精华
0

最佳新人

10#
发表于 2014-1-8 23:05:39 |只看该作者
xiduxiaoyu 发表于 2014-1-8 21:36
晕Destroy后Assets再释放一下unused资源就行了。

怎么弄的?
回复

使用道具 举报

12 第1页 | 共2 页下一页
返回列表 发新帖
您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-11 10:46 , Processed in 0.091152 second(s), 29 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部