unity3d之Manual

AssetBundle是有一组对象组合成系列化文件,分为正常资源包和流场景资源包,两则之间有些许细微差别,这两种资源包都以相同的方式进行归档和压缩

1.AssetBundle内部结构图:

                正常资源包内部结构图

                流场景资源包内部结构图

2.AssetBundle压缩:分为LZ4压缩和LZMA压缩。LZ4,将一个原始文件分割成大小相同的几个子快进行独立压缩,后进行索引存储,LZMA,则是将整个快进行一次压缩,压缩比较彻底

优点:LZ4加载速度比LZMA速度快,在游戏中使用LZ4开销较小,使用AB时,使用LZ4压缩的资源包时只需解压与自己相关的子块不需要所有子块都解压,使用LZMA的资源包时,需要全部解压

缺点:LZ4压缩比低压缩后包体较大,LZMA压缩比高,包体较小

                资源包归档

www. LooFulcMcAccOrdOutoLoad函数下载并缓存资产绑定到磁盘,从而大大加快了加载速度。从Unity 5.3开始,缓存数据也可以用LZ4算法进行压缩。与未压缩的捆绑相比,这节省了40%到60%的空间。重新压缩发生在下载过程中,因此最终用户几乎不可见。当数据从套接字到达时,Unity将对其进行解压缩并以LZ4格式重新压缩它。这种重新压缩发生在下载流中,这意味着一旦下载了足够多的数据,缓存压缩就开始了,并继续增量直到下载完成。之后,当需要时,通过解压缩块,从缓存包中读取数据。

资源包加载方式比较

资源打包方式总结:

App内部资源(StreamAssets中的资源),使用LZ4打包压缩,使用AssetBundle.LoadFileAsync加载

更新的资源(资源更新,减少包体):使用LZMA进行打包压缩,使用www.LoadFromCacheOrDownload进行下载

 

posted on 2018-07-26 16:26  魔天天  阅读(343)  评论(0)    收藏  举报