Skip to content

包体大小限制

由于Unity插件导出的小游戏包体大小较大,目前分包在30MB左右,线上平均网络速度 1-2Mb/s,Unity小游戏启动,需要将主包+分包(30Mb)都下载下来,才能正常渲染画面,以线上网速大概需要15~30s,耗时较长。

平台提出以下包体限制&优化建议:

  • 首包资源data.wasm文件建议不要超过15M,code.wasm代码逻辑不要超过30M;

  • 通过自身裁剪资源等手段降低导出的包体大小,否则线上加载转化肯定较低;

优化wasm资源大小

目前游戏启动速度主要受以下两个大文件制约,在游戏启动加载过程中,游戏引擎会远程网络加载这两个文件,下载后会读取二进制数据进行编译运行,所以理论上这两个文件越小,启动速度越快。

xxx.data.unityweb:主要是Unity游戏导出的游戏场景资源

  • 可使用AssetStudio查看文件内的所有资源
  • 首包资源data.wasm文件建议不要超过15M
  • 尽量避免启动游戏时大量加载非首场景用到的游戏资源,可以使用按需加载方式如AssetBundle\Addressable,资源包尽量拆分,如可以设置Addressable的Bundle Mode为分包,同时可以降低内存的使用,单个ab的包体最好不超过2MB

xxx.code.unityweb:Unity游戏导出的代码文件

  • code.wasm代码逻辑建议不要超过30M

  • 减少初始化与首帧逻辑,首场景Awake/Start/首次Update不要包含过重逻辑

  • 如果使用Unity2021以上版本,可更改PlayerSettings面板IL2CPP选项为更小尺寸(SIZE)以减少函数量

  • 减少包体,剔除不必要的插件及代码,可在webgl打包时设置相应的压缩强度(Project Setting->Player->Other Settings->Optimization->Strip Engine),即,Strip Engine Code 需要勾选,然后设置Stripping Level等级强度,建议选择最高,如下图所示:

    net_monitor

代码(wasm)分包

进一步优化wasm首帧速度,强烈建议使用代码(wasm)分包工具