2 vonhallex vonHallex 于 2014.10.11 12:06 提问

关于unity中destroy方法的疑问
  1. 一个gameObject被destroy,如何判断操作已经完成?
    我试过gameObject == null
    也试过 !gameObject
    都不行是我的方法错了吗。

  2. destroy删除后的游戏对象的内存是否被完全释放了,如果没有,我们如何进行清理工作?

3个回答

xuriqingyun
xuriqingyun   2014.11.19 13:10

如果你不确定gameObject = null赋值 就可以避免了

zl03281125
zl03281125   2015.06.04 15:18

Destroy(gameobject);之后,你的gameobject==null的结果就为true,此时的gameobject是一个null。

qq_35860183
qq_35860183   2018.06.19 13:29

Destroy的时候不会直接销毁的,当这个对象没有一个引用的时候,会自动销毁对象的

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Unity DestroyImmediate和Destroy区别
DestroyImmediate立即对对像进行销毁; Destroy销毁场景中的物体,但内存中还存在,当令它需要销毁时,只是给一个标识。而内存中它依然是存在的,只有当内存不够,或一段时间没有再次被引用时(或者更多合理的条件满足),机制才会将它销毁并释放内存。 这样做的目的就是为了避免频繁对内存的读写操作。回收器会定时清理一次内存中引用计数为0的对象,很可能你的要销毁的对象在其他地方还有引用
关于Object被Destroy之后,该Object的原引用==null的问题
由于C#本身有GC机制,当对象的引用为0的时候就会被垃圾回收,对应的引用则会被置为null, 但Unity里边,调Destroy删除一个Object,只是释放了Unity的资源,而在C#层面,这个Object对应的引用都还在,那么它便不会被当成垃圾回收掉,所以C#层的资源并没有释放,但是拿它的引用跟null做对比确实相等的。代码跟到Unity Object脚本的实现,Unity里的MonoBeha
unity Destroy的使用
GameObject obj= GameObject.CreatePrimitive(PrimitiveType.Cube); Destroy(obj); //物体 Destroy(this); //脚本 Destroy(transform.GetComponent<createprim>()); //...
unity中的destroy
unity中提供了销毁对象的三种方法:
【Unity】Destroy和DestroyImmediate的区别
情景:有一个父物体A,A有子物体B1.B2.B3……B10等10个子物体 那么现在若想移除B1—B10,该如何? 我能想到的最简单是这样做 using UnityEngine; using System.Collections; /// <summary> /// 脚本位置:将此脚本挂载到父物体A身上 /// 脚本功能:用于测试销毁所有子物体
Unity3D关于Destroy不会立即销毁的问题
Destroy(obj); print(obj);上面的obj并不会立即销毁,而是需要等待下一个Update更新,所以还是可以被print出来 如果需要立即销毁则应该改为DestroyImmediate(obj); print(obj);很简单的东西,但是却花了一个上午找错,知道与不知道的问题。
Servlet的生命周期,及init,service,destroy方法
Servlet的生命周期是交给Servers的,init()相当于人刚出生的时候,一切都是最初的。在服务器启动的时候调用,init()方法是程序中的初始化方法;而service()是在init()执行后执行的,它就相当于人活着的时候,进行一定的方法操作。最后destroy()方法,就相当于人的死亡,它会结束掉Servlet的生命,是在服务器停止是调用的,即服务器停止执行destroy()方法,ser
Unity3D中Enabled、Destroy与Active的区别
Unity3D游戏对象消失三种方法的区别: 1、gameObject.active:是否在场景中停用该物体,在你gameObject.active =false中,则你在场景中用find找不到该物体。如果该物体有子物体,你要用SetActiveRecursively(false) 来控制是否在场景中停用该物体。 2、GameObject.Destroy():表示移除物体或物体上的组件,代表销毁
项目实施的问题与解决
        我在网上看了不少项目实施困难,但是我看到的是理论上解决问题,没有在实际上如何解决,下面我从实际的角度来阐述。        我们顾且先不要理会大型项目的实施,先从小的项目,从小项目着手来说明。我天天看见我的实施人员去实施单机版用户时要来回很多次,不止20次,甚至一个月,往往为了一个小问题来来回回的折腾,不但用户抱怨实施人员,而且实施人员也在抱怨用户。        为什么会出现这种
Unity内存申请和释放
转载自 Unity内存申请和释放 发表于 Unity 2014-07-01 15:01 字数: 2396 阅读量: 43 1.资源类型 GameObject, Transform, Mesh, Texture, Material, Shader, Script和各种其他Assets。 2.资源创建方式 静态引用,在脚本中加一个public GameO