AssetBundle的如何加载

Assets:  apk/assets

StreamingAssets : 这个文件夹   在   手机平台  一般是只读的,不可写,安卓打包到上麦呢的文件夹

persisten:这个路径,可读可写,程序第一次加载的时候会把  streamingassets  文件夹下面的东西写入这里


流程:

1,先把打的包从硬盘load到内存,用www加载

      1.1assetbundle.unload(false)    只卸载内存文件

      1.2assetbundle.unload(true)     卸载内存文件和assetbundle.load出来的文件

2,解包,assetbundle.load解压缩包

     2.1Resources.unloadasset(obj)  这个api  释放

     2.2一些隐藏的文件(比如预设以来的材质和纹理)  就要用  Resources.unloadunusedasset()释放,

3,程序要使用  

      3.1  如果是图片 这样的资源  assetbundle.load 出来的object直接使用

             同2.1

      3.2如果是prefab,必须instantiate实例化一下,Destroy();

4 ,AssetBundle的依赖关系,在后缀是.manifest下

总的mainifest记录了所有的AssetBundle,每个都有各自的mainifest记录关系


加载的时候先加载依赖关系,后加载自身

卸载的时候先卸载自身,再卸载依赖


5,第一次load  obj A   用assetbundle.load

     第二次load  objA  把这些东西缓存起来,从缓存里取


总结:

1,从mainifest文件中获取assetbundle依赖关系,

     www  manifeset=new www(manifesetpath);

     manifeset.assetbundle.loadasset("AssetBundleManifeset");参数是固定的,整个程序只会走一次

2,根据名称找到目标加载资源的所有依赖

     Name包名  ----》scenesone/load.ld

     主要为上层查找方便


3,根据依赖关系   加载资源

4,加载我们的assetbundle

     www   bundle=new www(bundlePath);

5,加载资源

     Assetbundle.Loadasset(resName);

    Assetbundle.loadassetwithsubassets(resname);加载多个资源





     




猜你喜欢

转载自blog.csdn.net/qq_35647121/article/details/80907468