打包:
1.可以指定一个mainAsset,加载时通过AssetBundle.mainAsset加载
2.不指定mainAsset,直接打包一堆内容进去,加载时通过AssetBundle.LoadAsset指定名字读取到
压缩类型:
1.LAMA:体积最小,解压时间长
2.LZ4:出现于5.3之后的版本,体积较大,解压时间相对较短(BuildAssetBundleOptions.ChunkBasedComPression)
3.不压缩:BuildAssetBundleOptions.UncompressedAssetBundle
Attention:
1.随着游戏一起发布的AB包,用LZ4方式打包,用LoadFromFile加载
可兼顾压缩,加载速度,内存
2.作为更新包从服务器下载的AB包,用LZMA打包,用WWW.LoadFromCacheOrDownload下载并缓存AB包文件
减少数据传输量,在本地磁盘创建缓存,兼顾之后的加载速度,内存
3.自己加密的AB包,用LZ4打包,用LoadFromMemory加载
加载:
动态加载:
首先要获取AssetBundle对象,然后从AssetBundle中加载;
两种方式:
1.WWW.assetbundle
(1).WWW类构造: WWW(string url)
AssetBundle.LoadAsset可直接在内存中进行
(2).WWW.LoadFromCacheOrDownload(string url, int version, uint crc=0);
该方法会将解压形式的Bundle内容存入磁盘作为缓存
LoadAsset需要通过IO从磁盘中的缓存获取
2.直接加载AssetBundle对象:
public static AssetBundle LoadFromFile(string path,uint crc=0);//号称最快的加载方式
public static AssetBundle LoadFromMemory(byte[] binary,uint crc=0);