在网上说的:
所有资源的一个容器,像Zip压缩包一样,这些资源都可以在运行时进行加载。
压缩选项:Uncompressed、LZMA、LZ4
自身保存着互相的依赖关系。
两种类型:
场景Bundle、松散的Bundle
自己实践的:
当导出AB后会生成两个文件。
1.AssetBundle文件:是二进制的,看不懂。
2.Mainfest文件:记录CRC、Hash、包含资源以及依赖的AssetBundle文件
官方给的AssetBundle的文件结构:
想要了解里面是什么怎么做呢?
(此处拿普通的AB为例,场景AB会生成BuildPlayer-和BuildPlayer-.sharedAssets)
通过 WebExtract 和 Binary2Text 查看AssetBundle文件的内部。(路径:Unity\Editor\Data\Tools)
使用命令:WebExtract路径 + assetbundle文件路径。
解压成功会有如上提示,并在该目录生一个xxx_data的文件夹。
文件夹内有一个 CAB- 的二进制文件。
再使用命令:Binary2Text路径 + CAB-文件路径 + -detail
成功后会生成一个txt文本文件,打开后可以看到三个结构。
1.External References
2.AssetBundle
内容:
a.m_Name:名称
b.m_PreloadTable:一张表(fileID 是依赖的索引,对应上面的Extern References,pathID 是本文件的唯一ID)
c.m_Container:(资源列表,first是key second是value,通过 preloadIndex 与 preloadSize)
d.m_MainAsset:(4.x的时候用的,现在没啥用)
3.Object
里面就是Object的具体信息。
这样就和上面的结构对应上了。
可用工具:
AssetBundle Graphic Tool:打包
AssetBundle Browser Tool:浏览内容
AssetBundle Inspector:查看包的内容