Asset bundle 资源更新详解教程之加载单个Asset bundle包的相关原理解析

Asset bundle包可以放在网络上,也可以放在硬盘上

加载Asset bundle包有三块内存,

Asset bundle 资源更新详解教程之加载单个Asset bundle包的相关原理解析

如果放在网络上:

第一步:用www加载Assetbundle 的zip包下载下来然后解压到本地,(资源更新的时候)

第二步:内存启动的时候以后用AssetBundle.LoadFromFile()把Zip包从本地加载到内存中去,这块儿内存叫内存镜像(用AssetBundle.LoadFromFile()加载的叫内存镜像)

第三步:解压Asset bundle  这就是第二块内存

Assetbundle.Load()方法,将镜像里面的zip包解压出来,这就是第二块内存

里面包含 gameobject ,shader ,material,texture.....

第四步:使用解压出来的资源,GameOblect.instiate实例化出来,实例化到场景中,即用这个资源。

如何释放内存?

AssetBundle.Unload(false) 一般用false,如果为True,则会把第一块儿内存与第二块儿内存一起卸掉。

第二块内存释放一般用 Resources.Unloadasset(obj),注意只卸载obj

类的,不能卸载,shader ,material,texture.....之类的资源

卸载,shader ,material,texture.....之类的资源用 Resources.Unloadunusedasset()

第三块内存释放一般用 Destroy(),Destory的是Object物体,其他的资源用 Resources.Unloadunusedasset()卸载

                                                                                                   

相关知识借鉴:https://tv.sohu.com/v/dXMvMjQwNzYwNzQ4LzEwMjQ4MTU5NC5zaHRtbA==.html