怎么解压Unity WebGL游戏的UnityWebData1.0资源包

什么是 UnityWebData

UnityWebData 文件是在 WebGL 游戏中与 WebAssembly 文件一起加载和运用的文件,主要是组合一切财物(Asset)、资源(Resource)和元数据(Meta)文件的文件。

怎么解压Unity WebGL游戏的UnityWebData1.0资源包

UnityWebData的结构体

本节介绍根据UnityWebData1.0的二进制文件的结构进行介绍。

需要注意:int值必须以Little Endian方式读取。

文件头 (File Header)

字段名 长度(字节) 类型 描述
文件签名 16 string “UnityWebData1.0”
文件体偏移 4 int 整个列出文件的开始方位,与第一个文件的方位相同

文件信息头 (File Information Header)

该区块紧跟在文件头之后,处于文件体之前。

它是一张文件索引表,记载了文件读取的偏移量,文件名等信息,表项的字段如下:

字段名 长度(字节) 类型 描述
文件偏移量 4 int 文件的开始偏移量
文件长度 4 int 文件巨细
文件名长度 4 int 文件名长度
文件名 n string 文件名

文件体 (File Body)

文件索引表后面紧跟着的便是资源文件了。假如要读取某一个文件,可以先读取获取其在标头中的偏移量,然后从该方位读取到标头中记载的文件巨细的文件数据。

运用东西

通过我的测验,有两个比较好使:

UWDTool

装置:

pip install uwdtool

解包:

python UWDTool.py <Control Option> [-i input_path] [-o output_path]

unityweb

装置:

go install github.com/jozsefsallai/unityweb/cmd/unityweb@latest

解包:

unityweb unpack -i ./webdata.data -o ./unpack

参考资料