Version: 1.4
语言 : 中文
小游戏启动分析
团结引擎启动优化

首包数据文件精简

小游戏首包数据文件构成

小游戏首包数据文件中包含以下内容:

  • tuanjie_default_resources 文件,引擎默认资源,如 Arial 字体,默认 Mesh ,纹理等;
  • Il2cpp metadata,C# 代码使用 Il2cpp 生成 Cpp 代码时,生成的类、方法等信息;
  • tuanjie_builtin_extra,包含默认的 Shader 等资源;
  • Build Settings 中所有 Active 的场景;
  • Resources 文件夹中的资源,以及其中的资源引用到的其他资源;
  • 全局设置及引用到的资源,如 Splash 图片等。

查看首包构成

Asset Studio 工具

Asset Studio 已支持读取团结引擎打包的资源文件,可从此处下载 AssetStudio

需要注意 Asset Studio 中显示的纹理资源大小为压缩前大小,并非在资源文件内占用的实际大小。

引擎自带工具

这里我们提供了一个将小游戏首包数据文件解开成多个文件的工具。

完成后,可以使用引擎 Editor/Data/Tools 安装目录下提供的两个工具,来查看其中的资源:

  • WebExtract: 从 AssetBundle 中解压出序列化文件;
  • Binary2Text: 将二进制的序列化文件转化成文本可读形式,需要打包 AB 时包含 TypeTree 才能看到完整信息。

优化方式

可以通过以下方法来优化小游戏首包数据文件大小:

使用资产流式加载

  • 使用 AutoStreaming / TextureManager 等已有流式加载方案,参考资产流式加载章节;
  • 或使用 AssetBundle / Addressables 分包拆解资源,并自行管理资源流式加载。

减少Shader及其变体

  • 取消 Auto Graphics API ,只使用 WebGL 1.0 或 WebGL 2.0

  • Project Settings -> Graphics 页面,Always Included Shaders 列表中移除未使用的 Shader:

remove_shader

  • Project Settings -> Quality 页面,取消勾选小游戏平台未使用的 Quality Level ,建议只保留一个即可:

使用压缩资源格式

对纹理、音频使用合适的压缩格式和压缩等级后,可以大幅降低小游戏包体和运行内存。详细操作可参考内存优化指引中的纹理和音频资源优化章节

字体加载

小游戏可以选择使用宿主提供的字体,从而避免在启动时需要下载一个 2–3MB 的精简字体文件。 如果首场景不复杂,使用的文字不多。也可以使用纹理展示,或者单独给首场景中需要显示的文字生成一张 Textmesh Pro 的静态字体贴图。

其他小游戏首包优化方式

  • 尽量避免使用 Resources 文件夹;
  • 简化首场景,只保留最基础的功能;
  • Build Settings 中仅保留首场景,其余场景通过 AssetBundle 或 Streaming 方式加载;

Il2cpp metadata 的大小和游戏代码量相关,优化 WASM 代码文件大小的同时也会减小 Il2cpp metadata,因此不再重复。

小游戏启动分析
团结引擎启动优化