Unity 导出的 WebGL 小游戏存在资源包体积较大的问题,主包 + 分包通常在 30MB 左右。由于线上平均网速在 1–2Mb/s 范围内,用户首次加载需要 15–30 秒甚至更久,影响用户体验和转化率。
因此,平台对包体大小提出限制,并建议按需加载以优化启动速度和加载性能。
| 类型 | 包体类型 | 限制要求 | 说明 |
|---|---|---|---|
| 平台限制 | 主包 | < 6MB | 所有资源压缩后主包大小必须小于 6MB |
| 平台限制 | 分包 | 主包 < 6MB + 所有分包 < 30MB | 支持分包上传,整包作为兼容包上传但不计入大小限制 |
| 优化建议 | 关键资源 | data.wasm ≤ 15MB;code.wasm ≤ 30MB | 通过自身裁剪资源等手段降低导出的包体大小,减小文件体积 |
游戏启动速度主要受以下两个大文件制约,首次启动游戏引擎会远程网络加载这两个文件,所以这两个文件越小,启动速度越快。
xxx.data.unityweb(资源文件)优化建议:
xxx.code.unityweb(代码文件)包含游戏的核心逻辑代码,加载后通过 WebAssembly 运行。
优化建议:
控制初始化与首帧逻辑复杂度,减少 Awake、Start 和首帧 Update 的负载。
Unity 2021+ 可设置 PlayerSettings 的 IL2CPP 为 更小Size ,减少函数数量。
启用引擎裁剪:
Project Settings > Player > Other Settings > Optimization > Strip Engine Code
并设置 Stripping Level 为最高。
移除无用插件和平台代码,提升压缩率。

适用于没有自有 CDN 的团队,资源以主包 + 子包形式分发。
打包后结构如下:
| 文件 | 说明 |
|---|---|
main.rpk | 主包(控制在 6MB 内) |
unitySubPkg.rpk | 分包(需控制在 30MB 内) |
打包工具自动将 unitySubPkg 文件夹中的内容生成分包,并在运行时按需加载。
⚠ 若
unitySubPkg> 30MB,需优化data.unityweb和code.unityweb。
若使用了分包加载,导出的 xxx.data.unityweb(即 webgl.data)部分>20MB 时,建议存放到自有 CDN 服务器上;
填写 webgl.zip URL 以后,在 src 同级目录下会多出 gzip 目录,该目录下资源上传到自有 CDN 上,URL 对应此 CDN 的资源地址,如下图所示:

**注:未获得 CDN 资源地址之前可以写一个示例地址方便打包出 gzip 目录,示例地址如:**
http://10.15.xx.xx:8080/wasm.zip,上传后重新配置点击仅构建即可。
适用于拥有自有 CDN 的团队,可将 WASM 文件独立上传至 CDN,以减小主包体积。

配置方式:
导出快游戏后,会生成 gzip/wasm.zip 文件。

上传 wasm.zip 至 CDN。
配置地址到 webgl_qg/buildUnity/env.conf 文件中的 wasmUrl 字段:
{
"wasmUrl": "https://yourcdn.com/path/wasm.zip"
}
⚠ 建议前期调试使用整包加载,使用本地 wasm 文件进行调试。正式上线时需为每次导出配置唯一版本地址,避免多个版本混用同一个资源文件。
http://10.15.xx.xx:8080/wasm.zip)生成 gzip 文件夹结构。