要部署 Web 构建,您必须配置服务器并确保您使用的是正确的响应标头,以便浏览器接收适当的响应并正确处理它。
Unity 中有两个主要设置会影响您设置服务器的方式
从 Web Player 设置窗口(菜单:编辑 > 项目设置 > 播放器,然后选择 Web 并展开 发布设置 部分)中选择压缩类型。
压缩方法 | 描述 |
---|---|
gzip | 这是默认选项。Gzip 文件比 Brotli 文件更大,但构建速度更快,并且所有浏览器都通过 HTTP 和 HTTPS 本机支持。 |
Brotli | Brotli 压缩提供最佳压缩率。Brotli 压缩文件比 gzip 小,但压缩时间更长,这会增加发布构建的迭代时间。Chrome 和 Firefox 仅通过 HTTPS 本机支持 Brotli 压缩。 |
已禁用 | 禁用压缩。如果您想在 后期处理在图像出现在屏幕上之前应用滤镜和效果来改善产品视觉效果的过程。您可以使用后期处理效果来模拟物理相机和电影属性,例如 Bloom 和景深。更多信息 后期处理,后期处理,后期处理 参见 词汇表 脚本一段代码,允许您创建自己的组件、触发游戏事件、随时间推移修改组件属性并以任何您喜欢的 방식 响应用户输入。更多信息 参见 词汇表 中实现自己的压缩,请使用此选项。如果您计划在托管服务器上使用静态压缩,也应该使用它。 |
有关选定压缩方法的浏览器支持的更多信息,请参阅 Web 浏览器兼容性 文档。
注意:压缩格式 设置仅适用于发布构建。开发构建开发构建包含调试符号并启用分析器。更多信息
参见 词汇表 不会压缩。
您可能需要调整您的服务器配置以匹配您的特定构建设置。特别是,如果您已经拥有另一个服务器端配置来压缩托管文件,则可能会出现问题,这可能会干扰此设置。为了让浏览器在下载您的应用程序时本机执行解压缩,请将 Content-Encoding 标头 附加到服务器响应中。此标头必须与 Unity 在构建时使用的压缩类型相对应。有关代码示例,请参阅 服务器配置代码示例。
解压缩回退选项使 Unity 能够自动将 JavaScript 解压缩器嵌入到您的构建中。此解压缩器与您选择的压缩方法相对应,如果浏览器无法执行此操作,则会解压缩您的内容。
从 播放器设置 窗口(菜单:编辑 > 项目设置 > 播放器,然后选择 Web 并展开 发布设置 部分)启用解压缩回退。
启用解压缩回退后,Unity 会将 .unityweb
扩展名添加到构建文件。如果您对服务器配置不太熟悉,或者您无法使用服务器配置,您应该考虑使用 解压缩回退。
注意:启用解压缩回退会导致加载程序大小变大,并且构建文件的加载方案效率较低。
解压缩回退 选项默认情况下处于禁用状态。因此,默认情况下,构建文件包含与您选择的压缩方法相对应的扩展名。
您可以从两种压缩方法中进行选择:gzip 或 Brotli。有关更多信息,请参阅 压缩格式 部分。
为了使浏览器能够在下载时本机解压缩 Unity 构建文件,您需要配置您的 Web 服务器以使用适当的 HTTP 标头提供压缩文件。这称为本机浏览器解压缩。它比 JavaScript 解压缩回退更快,可以缩短应用程序的启动时间。
本机浏览器解压缩的设置过程取决于您的 Web 服务器。有关代码示例,请参见 服务器配置代码示例。
Content-Encoding 标头告诉浏览器 Unity 对压缩文件使用了哪种类型的压缩。这使浏览器能够本机解压缩文件。
将 Content-Encoding 响应标头设置为在 播放器设置设置,让您为 Unity 构建的最终游戏设置各种特定于播放器的选项。更多信息
参见 词汇表 中选择的压缩方法。
压缩方法 | 文件扩展名 | 响应标头 |
---|---|---|
gzip | .gz | Content-Encoding: gzip |
Brotli | .br | Content-Encoding: br |
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 解压缩一起使用。下载的 WebAssembly 文件必须首先通过 JavaScript 解压缩器,因为浏览器无法在下载期间对其进行流式传输。
如果您的文件包含 JavaScript,您应该添加 application/javascript
Content-Type 标头。某些服务器可能会自动包含它,而另一些则不会。
文件扩展名 | 响应标头 |
---|---|
.js, .js.gz, js.br | Content-Type: application/javascript |