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