原创内容,转载请注明原文网址:http://homeqin.cn/a/wenzhangboke/jishutiandi/youxikaifa/2018/1008/49.html
再总结:加载时在Assets中引入了5个资源(GameObject,MeshRenderer,MeshFilter,BoxCollider和Transform),只被t引用,使t=null,调Resources.UnloadUnusedAssets ()即可销毁
实例化时在Scene Momory中引入了5个资源(GameObject,MeshRenderer,MeshFilter,BoxCollider和Transform)(是从Asset中复制过来的),只被场景中的物体引用,Destroy该物体,就直接销毁了这些资源,不需调用 Resources.UnloadUnusedAssets ()
实例化时还在Assets中引入了材质,贴图,shader等资源,这部分资源同时被t和场景中的物体所引用,使t=null,并Destroy该物体,调用Resources.UnloadUnusedAssets ()才能使之销毁
再再总结:
使用AssetBundle.Load加载Prefab与使用Resources.Load表现基本一致
只有一点区别:
Object t = myLoadedAssetBundle.LoadAsset("Cube");
加载资源时,会把Cube所依赖的所有资源都加载Assets,而不是要等到实例化时才加载那四个。即这一步以后,Assets中的资源数量会以下增加9个(5+4)
上篇:上一篇:U3D用单例创建并永久化游戏对象
下篇:下一篇:Unity使用HDR实现天空盒