Skip to content

代码(wasm)分包

背景

unity 导出小游戏项目后,代码是在一个 wasm 文件里,放在 unitySubPkg 目录下,vivo平台下其 wasm 对应的文件名为webgl.wasm.code.unityweb

一般小游戏的 wasm 大小都为 30M 左右,压缩后为 6M 左右;

启动阶段,小游戏需要先下载完 wasmcode 再编译,这里会占用较高的内存和时间;

因此我们提供了代码分包工具,将原来的 wasm 拆分为两个,一个用于启动加载(主包),另一个可以延迟加载(子包);

使得小游戏可以先加载较小的首包进入主场景,再异步加载剩下的分包。

作用

分包的作用在于:

  • 优化启动时间;
  • 减少内存使用;
  • 减少编译时间,降低了游戏前期的发烫情况。

使用要求

以下为必要条件:

  • unity引擎支持2019版本及以上;
  • 安装vivo小游戏IDE最新版本,未安装请参考IDE指南进行安装;
  • 小游戏引擎需要下载指定的引擎版本,分包成功后上线不受引擎版本影响;
  • 代码(wasm)分包功能需要最新Unity插件分包版本

导出小游戏

注意:"首包资源加载方式"必须选择 -> "vivo分包" 方式导出小游戏,导出webgl.zip URL(?)选项详情见vivo分包方式,否则IDE无法开启分包能力。

alt text

启用分包

使用IDE打开unity插件导出的webgl_vivo目录 alt text 点击开启分包图标 alt text

准备分包

此阶段将wasm文件上传到分包服务器,过程较为耗时,一般需要1~3分钟。 alt text

构建分包调试包

准备分包成功后,需要构建分包调试包。 alt text

构建成功后,使用真机的调试工具,扫码打开此调试包并运行游戏;

收集首包函数

成功进入游戏时,可发现真机上会实时展示当前首包函数个数;

注: 需要基于用户的环境(即线上环境),并覆盖尽可能多的场景效果最佳,当前首包函数个数/原始分包函数总个数 要求控制在 1/3到1/2之间;

当显示的收集到首包函数个数相对稳定时;

点击“我已收集好,继续下一步”。 alt text 引擎会将收集到的首包函数上传至服务器,上传成功后则回到IDE中,点“获取分包”按钮完成最后一步的分包流程。 net_monitor

获取分包

alt text 分包成功后,出现以下两个文件,分别为wasm的主包和分包,即为分包完成。分包完成后,需要使用真机验证分包后的效果。 alt text