AssetBundle介绍

如题所述

第1个回答  2022-07-17

在网上说的:
所有资源的一个容器,像Zip压缩包一样,这些资源都可以在运行时进行加载。
压缩选项:Uncompressed、LZMA、LZ4
自身保存着互相的依赖关系。

两种类型:
场景Bundle、松散的Bundle

自己实践的:
当导出AB后会生成两个文件。

官方给的AssetBundle的文件结构:

想要了解里面是什么怎么做呢?

(此处拿普通的AB为例,场景AB会生成BuildPlayer-<SceneName>和BuildPlayer-<SceneName>.sharedAssets)
通过 WebExtract 和 Binary2Text 查看AssetBundle文件的内部。(路径:Unity\Editor\Data\Tools)
使用命令:WebExtract路径 + assetbundle文件路径。

解压成功会有如上提示,并在该目录生一个xxx_data的文件夹。
文件夹内有一个 CAB-<GUIDString> 的二进制文件。

再使用命令:Binary2Text路径 + CAB-<GUIDString>文件路径 + -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:查看包的内容

相似回答