如何解压Unity WebGL游戏的UnityWebData1.0资源包

如何解压Unity WebGL游戏的UnityWebData1.0资源包

什么是 UnityWebData

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

UnityWebData的结构体

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

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

文件头 (File Header)

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

文件信息头 (File Information Header)

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

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

字段名 长度(字节) 类型 描述
文件偏移量 4 int 文件的起始偏移量
文件长度 4 int 文件大小
文件名长度 4 int 文件名长度
文件名 n string 文件名

文件体 (File Body)

文件索引表后面紧跟着的就是资源文件了。如果要读取某一个文件,可以先读取获取其在标头中的偏移量,然后从该位置读取到标头中记录的文件大小的文件数据。

使用工具

经过我的测试,有两个比较好使:

UWDTool

安装:

bash 复制代码
pip install uwdtool

解包:

bash 复制代码
python UWDTool.py <Control Option> [-i input_path] [-o output_path]

unityweb

安装:

bash 复制代码
go install github.com/jozsefsallai/unityweb/cmd/unityweb@latest

解包:

bash 复制代码
unityweb unpack -i ./webdata.data -o ./unpack

参考资料

相关推荐
ryfdizuo3 天前
HDR渲染管线中的像素格式-v1
图形渲染·渲染·游戏开发·hdr·色彩·高动态
2401_841495643 天前
【游戏开发】登山赛车
数据结构·python·游戏·游戏开发·pygame·登山赛车游戏·游戏打包发布
喵个咪5 天前
Go单协程事件调度器:游戏后端的无锁有序与响应时间掌控
后端·游戏开发
yongche_shi5 天前
第九十九篇:Python在其他领域的应用:游戏开发、物联网、AIoT简介
开发语言·python·物联网·游戏开发·aiot
SmalBox6 天前
【节点】[NormalBlend节点]原理解析与实际应用
unity3d·游戏开发·图形学
龙智DevSecOps解决方案6 天前
Perforce《2025游戏技术现状报告》Part 5:创意工作者在用什么工具以及如何看待游戏引擎与生成式AI(附免费下载)
游戏引擎·游戏开发·软件开发·perforce·ai创作·龙智
_大学牲6 天前
Flutter 勇闯2D像素游戏之路(五):像元气骑士一样的设计随机地牢
flutter·游戏·游戏开发
SmalBox7 天前
【节点】[ColorMask节点]原理解析与实际应用
unity3d·游戏开发·图形学
SmalBox7 天前
【节点】[ChannelMask节点]原理解析与实际应用
unity3d·游戏开发·图形学
UWA8 天前
GPM 2.0全新功能发布|GPU精准监测 + 精细化运营,重构游戏性能管控新范式
人工智能·游戏·性能优化·重构·游戏开发·uwa