Version: Unity 6.0 (6000.0)
语言 : 中文
Web 模板构建配置和交互
服务器配置代码示例

部署 Web 应用程序

要部署 Web 构建,必须配置服务器并确保使用正确的响应标头,以便浏览器接收正确的响应并正确处理响应。

Unity 中有两个主要设置会影响服务器的设置方式:

  • 压缩格式 (Compression Format):确定 Unity 在构建步骤中如何压缩文件。
  • 解压缩回退 (Decompression Fallback):确定当构建在浏览器中运行时 Unity 如何处理下载的文件。

压缩格式

从 Web 播放器设置 (Web Player Settings) 窗口选择压缩类型(菜单:编辑 (Edit) > 项目设置 (Project Settings) > 播放器 (Player),然后选择 Web 并展开发布设置 (Publishing Settings) 部分):

Web 发布窗口的图像
Web 发布窗口的图像
压缩方法 描述
gzip 这是默认选项。Gzip 文件比 Brotli 文件更大,但构建速度更快,且所有浏览器都基于 HTTP 和 HTTPS 实现此格式的本机支持。
Brotli Brotli 压缩提供最佳压缩比。Brotli 压缩文件小于 gzip,但需要更长的压缩时间,因此会增加发布版本的迭代时间。Chrome 和 Firefox 仅原生支持基于 HTTPS 的 Brotli 压缩。
Disabled 禁用压缩。如果要在后期处理脚本中实现您自己的压缩,请使用此选项。如果计划在托管服务器上使用静态压缩,也应该使用此选项。

有关浏览器对所选压缩方法的支持的更多信息,请参阅有关 Web 浏览器兼容性的文档。

注意压缩格式 (Compression Format) 设置仅适用于发布构建。开发构建未压缩。

Web 服务器配置

您可能需要调整服务器配置以匹配特定构建设置。具体而言,如果已使用其他服务器端配置来压缩托管的文件(这可能会干扰此设置),可能会出现问题。为了使浏览器在下载应用程序期间以原生方式执行解压缩,需要在服务器响应中附加一个 Content-Encoding 标头。该标头必须与 Unity 在构建时使用的压缩类型相对应。有关代码示例,请参阅服务器配置代码示例

解压缩回退

解压缩回退选项使 Unity 能够自动将 JavaScript 解压缩器内嵌到您的构建中。该解压缩器与您选择的压缩方法相对应,它在浏览器无法解压缩内容时执行解压缩。

启用解压缩回退

播放器设置 (Player Settings) 窗口启用解压缩回退(菜单:编辑 (Edit) > 项目设置 (Project Settings) > 播放器 (Player),然后选择 Web 并展开发布设置 (Publishing Settings) 部分)。

如果启用解压缩回退,Unity 会向构建文件添加一个 .unityweb 扩展名。如果不熟悉服务器配置,或者无法使用服务器配置,应考虑使用解压缩回退 (Decompression Fallback)

注意:启用解压缩回退会导致加载器大小增大和构建文件加载方案的效率降低。

禁用解压缩回退

默认情况下,解压缩回退 (Decompression Fallback) 选项处于禁用状态。因此,默认情况下,构建文件的扩展名与您选择的压缩方法相对应。

有两种压缩方法可供选择:Gzip 或 Brotli。有关更多信息,请参阅压缩格式部分。

要让浏览器在 Unity 构建文件下载时进行原生解压缩,需要配置 Web 服务器以使用适当的 HTTP 标头提供压缩文件。这称为原生浏览器解压缩。它比 JavaScript 解压缩回退更快,可以减少应用程序的启动时间。

本机浏览器解压缩的设置过程取决于 Web 服务器。有关代码示例,请参阅服务器配置代码示例

Content-Encoding 标头

Content-Encoding 标头将告诉浏览器 Unity 用于压缩文件的压缩类型。这样,浏览器可以原生解压缩文件。

将 Content-Encoding 响应标头设置为在 Player Settings 中选择的压缩方法。

压缩方法 文件扩展名 响应标头
gzip .gz Content-Encoding: gzip
Brotli .br Content-Encoding: br

WebAssembly 串流(更高级别的标头)

WebAssembly 串流允许浏览器在下载代码的同时编译 WebAssembly 代码。这可以显著缩短加载时间。

为了使 WebAssembly 串流编译能够正常工作,服务器需要返回 application/wasm MIME 类型的 WebAssembly 文件。要使用 WebAssembly 串流,需要使用 Content-Type: application/wasm 响应标头来提供 WebAssembly 文件。Content-Type 标头将告诉服务器内容的媒体类型。对于 WebAssembly 文件,此值应设置为 application/wasm

文件扩展名 响应标头
.wasm、.wasm.gz、.wasm.br Content-Type: application/wasm

注意:WebAssembly 串流不能采用 JavaScript 解压缩(如果启用了解压缩回退 (Decompression Fallback) 选项)。下载的 WebAssembly 文件必须首先通过 JavaScript 解压缩器,因为浏览器无法在下载过程中进行串流。

附加标头

如果文件包含 JavaScript,则应添加 application/javascript Content-Type 标头。某些服务器可能会自动包含此内容,另一些服务器则不会。

文件扩展名 响应标头
.js、.js.gz、js.br Content-Type: application/javascript

  • 在 2020.1 中更新了服务器配置帐户的页面
  • 2019–09–04 在 2019.2 中添加了 WebAssembly 串流
Web 模板构建配置和交互
服务器配置代码示例