快速的加载时间对于基于 Web 的应用程序至关重要,尤其是在移动设备上,这些设备可能需要在缓慢的移动网络上下载应用程序资源。缓慢的加载时间会导致糟糕的用户体验和较高的跳出率。因此,优化 Web 构建以用于移动设备非常重要。
当您拥有较小的构建和高性能代码时,基于 Web 的移动应用程序效果最佳,因为需要下载的数据更少,存储在用户设备上的数据更少,并且在初始化期间加载的数据更少,从而加快加载速度。
有关不特定于移动设备的 Web 优化,请参阅 优化 Web 构建。
使用这些推荐的设置来进行特定于 Unity Web 平台的移动设备优化
建议 | 描述 |
---|---|
优化大小 | 禁用 开发构建开发构建包括调试符号并启用探查器。 更多信息 请参阅 词汇表 设置并优化构建以节省磁盘空间(使用 LTO 的磁盘大小)。 |
使用 Brotli 压缩 | 使用 Brotli 压缩一种存储数据的方法,可减少其所需的存储空间。请参阅 纹理压缩、动画压缩、音频压缩、构建压缩。 请参阅 词汇表 方法来压缩您的 Player 构建。 |
使用 Unity Addressables 系统 | 将 Unity Addressables 系统用于资源。 |
优化音频文件 | 减少音频占用的磁盘空间。 |
优化项目中的图形 | 减少图形占用的磁盘空间。 |
更改图形质量级别 | 降低质量级别以创建更快的构建。 |
较小的构建大小对于移动设备来说更好,因为需要下载的数据更少,这通常会缩短加载时间并在用户设备上使用更少的存储空间。
为了使您的构建尽可能小,请禁用开发构建设置并优化您的构建以节省磁盘空间
转到 文件 > 构建配置文件。
选择 Web。
如果已启用,则禁用 开发构建。
将 代码优化 设置为 使用 LTO 的磁盘大小。
注意:使用 LTO 优化的构建可能需要很长时间。仅在最终发布或需要测试性能时才使用此优化。在开发过程中使用更快的构建选项。
有关影响构建大小的其他设置,请参阅 推荐的 Player 设置以优化 Web 构建 和 从 Web 构建中移除未使用的资源。
如果您有一个编辑设置的脚本,并且想要使用 C# 启用 使用 LTO 的磁盘大小 设置,请将以下代码添加到您的脚本中
// Set Platform Settings to optimize for disk size (LTO)
UnityEditor.WebGL.UserBuildSettings.codeOptimization = UnityEditor.WebGL.WasmCodeOptimization.DiskSizeLTO;
Brotli 压缩是一种设置,其中 Unity 在构建时为您预压缩。Brotli 压缩的文件比 gzip 压缩的文件更小,这可以减小构建大小。
但是,Brotli 压缩需要更长的时间。此外,Chrome 和 Firefox 仅在 HTTPS 上原生支持 Brotli 压缩。如果这不太适合您的应用程序,请考虑使用 Gzip 压缩。
要使用 Brotli 压缩设置
确保您的 Web 服务器已配置为使用正确的编码提供 Brotli 文件。有关更多详细信息,请参阅 部署 Web 应用程序。
访问 Player 设置(菜单:编辑 > 项目设置 > Player)。
单击 Web 设置 选项卡。
展开 发布设置 部分。
将 压缩格式 设置为 Brotli。
如果您有一个 项目设置一系列广泛的设置,使您可以配置项目的物理、音频、网络、图形、输入以及许多其他方面的行为。 更多信息
请参阅 词汇表 脚本,并且想要使用 C# 更改压缩格式,请将以下代码添加到您的脚本中
// Set the compression format to Brotli
PlayerSettings.WebGL.compressionFormat = WebGLCompressionFormat.Brotli;
移动浏览器应用程序需要较短的加载时间以降低用户跳出率。为了保持较短的初始化时间,而不是在启动时加载所有资源,请使用 addressables 仅在应用程序需要时加载资源。将某些资源的加载推迟到游戏加载之后。
对于这些更改,请确保使用您创建的任何新 addressable 文件更新 StreamingAssets/aa/catalog.json
。
有关 addressables 以及如何设置它们的更多信息,请参阅 Addressables。
要进一步优化您的 addressables,请尝试以下操作
将您的 addressables 分组,以便减少资源包的数量。资源包的数量越少,构建大小就越小。有关 addressable 组以及如何创建它们的更多信息,请参阅 管理和创建组。
如果您的项目中有许多音频文件,最好压缩您的文件以减小音频文件的大小。但是,压缩的音频可能会导致音频质量降低。有关压缩格式的信息,请参阅 音频剪辑Unity 中音频数据的容器。Unity 支持单声道、立体声和多声道音频资源(最多八个声道)。Unity 可以导入 .aif、.wav、.mp3 和 .ogg 音频文件格式,以及 .xm、.mod、.it 和 .s3m 跟踪模块格式。 更多信息
请参阅 词汇表。
复杂的图形可能会占用资源,并使您的构建更大且性能降低。但是,有一些方法可以优化您的图形以减小构建大小并提高性能。要优化构建中的图形,请尝试以下操作
ASTC 压缩纹理类型提供较小的纹理大小并节省一些下载时间。在不支持 ASTC 的情况下,请考虑使用 ETC2。有关更多信息,请参阅 纹理格式3D 图形硬件(如图形卡或移动设备)在实时渲染期间处理纹理的文件格式。 更多信息
请参阅 词汇表。
要使用 ASTC 压缩纹理
在项目中选择您的纹理资源以打开 纹理导入设置 窗口。
选择 Web 设置。
启用 覆盖 Web。
将 格式 设置为 ASTC 块选项之一。
如果您使用 ASTC 压缩纹理,请尝试对压缩使用更大的块大小。ASTC 支持 4x4 到 12x12 个纹素之间的块大小。更大的块大小会导致纹理质量降低,但构建更小。为了在质量和大小之间取得良好的平衡,从而通过移动网络优化下载时间,请考虑使用 8x8。如果下载时间仍然太慢,请尝试增加块大小。有关更多信息,请参阅 推荐的、默认的和受支持的纹理格式,按平台划分。
要设置 ASTC 压缩纹理的块大小
在您的项目中选择您的纹理资源。将显示 纹理导入设置。
选择 Web 设置。
启用 覆盖 Web。
将 格式 设置为较大的 ASTC 块选项之一,例如 RGB(A) 压缩 ASTC 8x8 块。
推荐的最佳实践是将图形质量级别设置为最快的选项。最快的选项会导致构建更小。
要更改图形质量级别
访问 质量 设置(菜单:编辑 > 项目设置 > 质量)。
选择 低 或 极低 质量级别。
但是,最快的设置可能会影响应用程序的视觉效果,因此请确保您的应用程序的外观符合您的要求。
如果您有一个项目设置脚本,并且想要在脚本中更改项目的质量级别,请添加以下代码
// Set the quality level to Very Low (index 0)
QualitySettings.SetQualityLevel(0, true);
SetQualityLevel()
函数采用 质量级别 矩阵的索引作为值。在本例中,SetQualityLevel(0, true)
是 极低 设置,或 质量级别 矩阵中的第一个选项。要将其更改为 低 或第二个选项,请改用 SetQualityLevel(1, true)
。