unity build 3D里有两种动态加载机制: 这个prefab比洳是个npc然后你不需要他的时候你用了:Destroy(obj);你以为就释放干净了。其实这时候只是释放了Clone对象通过Load加载的所有引用、非引用Assets对象全都静静靜的躺在内存里。这种情况应该在Destroy以后用:AssetBundle1.Unload(true)彻底释放干净。如果这个AssetBundle1是要反复读取的 销毁的那就应该让那些Assets呆在内存里以加速游戏体验由此可以解释另一个之前有人提过的话题:为什么第一次Instantiate一个Prefab的时候都会卡一下,因为在你第一次Instantiate之前相应的Asset对象还没有被创建,要加载系统内置的AssetBundle并创建Assets,第一次以后你虽然Destroy了但Prefab的Assets对象都还在内存里,所以就很快了 Texture是引用对象,永远不会有自动复制的情况出现(除非伱真需要用代码自己实现copy),只会是创建和添加引用 这时候刚才load的Texture Asset释放了因为没有任何引用了 如何加载一堆大图片轮流显示又不爆掉? |
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。