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);加载多个资源
1,加载资源
第一步 :
1,没有加载bundle 就执行 加载
把你这个命令 存起来 等我加载完全了 在返回给你
2,已经在加载 但是没有加载完全
把你这个命令 存起来 等我加载完全了 在返回给你
3, 已经加载并且完成
就直接返回给上层