Version: 2021.1
WebGL 开发入门
构建和运行 WebGL 项目

WebGL Player 设置

本页面将详细介绍 WebGL 平台特有的 Player 设置。有关常规 Player 设置的描述,请参阅 Player

WebGL Player 设置
WebGL Player 设置

您可以在以下部分找到这些属性的文档:

注意:尽管 Icon 面板出现在 WebGL Player 设置中,但其中没有图标设置,因为 WebGL 游戏不使用图标。此外,Splash Image 面板上的唯一设置是通用 Splash Screen 设置。

有关 WebGL Publishing Settings 的更多信息,请参阅 WebGL 构建和运行页面。

Resolution and Presentation

此部分可以自定义大小和样式。

WebGL 播放器平台的 Resolution 部分
WebGL 播放器平台的 Resolution 部分

分辨率

设置 功能
Default Canvas Width 设置 WebGL 画布元素的宽度。
Default Canvas Height 设置 WebGL 画布元素的高度。
Run In Background 启用此选项将允许您的内容将在画布或浏览器窗口失去焦点时继续运行。

WebGL Template

选择要用于 WebGL 项目的模板:

  • Default 页面是一个简单的白色页面,其中的灰色画布上有一个加载进度条。
  • Minimal 页面只有必要的样板代码来运行 WebGL 内容。

您可以指定自己的模板,以便在与之前完成的游戏类似的环境中运行游戏。遵循使用 WebGL 模板中的说明。

Other Settings

此部分可以自定义一系列选项,这些选项分为以下几组:

Rendering

使用这些设置可自定义 Unity 针对 WebGL 平台渲染游戏的方式。

WebGL 平台的 Rendering Player 设置
WebGL 平台的 Rendering Player 设置
属性 功能
Color Space 选择应该用于渲染的颜色空间,选项为:_Gamma_ 或 Linear
请参阅线性渲染概述以了解这两者之间的区别。
Auto Graphics API 禁用此选项可手动选择和重新排序图形 API。默认情况下,此选项是启用的,并且 Unity 包含 WebGL2.0,对于不支持 WebGL2.0 的设备,以 WebGL1.0 作为后备选项。
Static Batching 启用此选项可使用静态批处理
Dynamic Batching 启用此选项可在构建中使用动态批处理(默认情况下启用)。
注意:可编程渲染管线激活时,动态批处理无效,所以仅当 Scriptable Render Pipeline Asset Graphics 设置中未设置任何内容时,此设置才可见。
Graphics Jobs 启用此选项可指示 Unity 将图形任务(渲染循环)卸载到在其他 CPU 核心上运行的工作线程。此功能旨在减少主线程上 Camera.Render 所花费的时间,该时间通常成为瓶颈。
注意:Unity 目前仅在使用 Vulkan 时支持图形作业 (Graphics Jobs),使用 OpenGL ES 时此设置无效。
Lightmap Streaming Enabled 启用此选项可根据需要仅加载光照贴图 Mipmap 以渲染当前游戏摄像机。此值适用于生成的光照贴图纹理。
注意:要使用此设置,必须启用 Texture Streaming Quality 设置。
Streaming Priority 设置光照贴图 Mipmap 串流优先级以解决资源冲突。这些值应用于生成的光照贴图纹理。
正数提供更高的优先级。有效值范围为 –128 到 127。

配置

WebGL 平台的 Configuration 设置
WebGL 平台的 Configuration 设置
设置 功能
Scripting Backend 此选项不可用于 WebGL,因为 WebGL 始终使用 IL2CPP 脚本后端。
API Compatibility Level 选择可以在项目中使用的 .NET API 运行时。此设置可能会影响与第三方库的兼容性。
提示:如果您遇到第三方程序集的问题,可以尝试下文的 API Compatibility Level 部分中的建议。
.Net 2.0 最高的 .net 兼容性,最大的文件大小。属于已弃用的 .NET 3.5 运行时。
.Net 2.0 Subset 完整 .net 兼容性的子集,最小的文件大小。属于已弃用的 .NET 3.5 运行时。
.Net Standard 2.0 兼容 .NET Standard 2.0。生成较小的构建并具有完整的跨平台支持。
.Net 4.x 如果使用的库需要访问 .NET Standard 2.0 中未包含的 API,请选择此选项。此选项兼容 .NET Framework 4(包括 .NET Standard 2.0 配置文件中的所有内容以及其他 API)。
生成更大的构建,并且任何可用的其他 API 不一定在所有平台上都受支持。有关更多信息,请参阅引用其他类库程序集
Use incremental GC 不支持。
Active Input Handling 选择您希望如何处理来自用户的输入。
Input Manager 使用传统的 Input 设置。
Input System (Preview) 使用较新的输入系统。输入系统作为此版本的预览包提供。要试用输入系统的预览版,请安装 InputSystem 包
Both 并排使用两个系统。

API Compatibility Level

可为所有目标选择 mono API 兼容性级别。有时,第三方 .NET 库会使用 .NET 兼容性级别之外的功能。为了解在这种情况下可能发生的问题以及如何以最佳方案修复问题,请尝试以下解决方案:

  1. 安装适用于 Windows 的 Reflector
  2. 将出现问题的相关 API 兼容性级别的 .NET 程序集拖到 Reflector 中。可以在 Frameworks/Mono/lib/mono/YOURSUBSET/ 下找到它们。
  3. 拖入第三方程序集。
  4. 右键单击第三方程序集并选择 Analyze
  5. 在分析报告中,检查 Depends on 部分。此报告以红色突出显示第三方程序集所依赖的但在您选择的 .NET 兼容性级别中不可用的任何内容。

Script Compilation

WebGL 平台的脚本编译设置
WebGL 平台的脚本编译设置
Setting Function
Scripting Define Symbols Set custom compilation flags. For more details, see the documentation on Platform dependent compilation.
Additional Compiler Arguments Add entries to this list to pass additional arguments to the Roslyn compiler. Use one new entry for each additional argument.
To create a new entry, press the ‘+’ button. To remove an entry, press the ‘-’ button.
When you have added all desired arguments, click the Apply button to include your additional arguments in future compilations.The Revert button resets this list to the most recent applied state.
Suppress Common Warnings Disable this setting to display the C# warnings CS0169 and CS0649.
Allow ‘unsafe’ Code Enable support for compiling ‘unsafe’ C# code in a pre-defined assembly (for example, Assembly-CSharp.dll).
For Assembly Definition Files (.asmdef), click on one of your .asmdef files and enable the option in the Inspector window that appears.
Use Deterministic Compilation Disable this setting to prevent compilation with the -deterministic C# flag. With this setting enabled, compiled assemblies are byte-for-byte identical each time they are compiled.
For more information, see Microsoft’s deterministic compiler option documentation.
Enable Roslyn Analyzers Disable this setting to compile user-written scripts without Roslyn analyzer DLLs that might be present in your project.
Use Roslyn Reference Assemblies Disable this setting to the compiler not to skip compilation reference assemblies when the metadata of the assembly does not change.

Optimization

WebGL 平台的 Optimization 设置
WebGL 平台的 Optimization 设置
设置 功能
Prebake Collision Meshes 启用此选项可在构建时将碰撞数据添加到网格。
Keep Loaded Shaders Alive 启用此选项可防止卸载着色器。
Preloaded Assets 设置一个资源数组,供播放器在启动时加载。
要添加新资源,请增大 Size 属性的值,然后在出现的新 Element 框中设置对要加载的资源的引用。
Strip Engine Code 启用代码剥离。此设置仅适用于 IL2CPP 脚本后端
大多数游戏都不会使用所有必需的 DLL。启用 Strip Engine Code 选项后,可以剥离掉未使用的部分以减小 iOS 设备上构建的播放器的大小。如果您的游戏使用的类通常会被您当前选择的选项删除,那么在进行构建时,将看到一条调试消息。
Managed Stripping Level 选择 Unity 剥离未使用的托管 (C#) 代码时的激进程度。
当 Unity 构建游戏或应用程序时,Unity Linker 进程可以从项目中使用的托管动态链接库中剥离未使用的代码。剥离代码可以使生成的可执行文件显著减小,但有时可能会错误地删除实际在使用的代码。
Normal 删除无法访问的托管代码以减少构建大小和 .NET/IL2CPP 构建时间。
Aggressive 比 Normal 选项更激进地删除代码。代码大小进一步降低,但这种额外降低可能会产生副作用。例如,某些方法可能在调试器中不再可见,并且可以剥离通过反射访问的代码。您可以创建自定义 link.xml 文件以保留特定的类和方法。有关更多信息,请参阅使用 IL2CPP 进行托管字节码剥离
Vertex Compression 选择应压缩的顶点通道。例如,可以为除位置和光照贴图 UV 之外的所有内容启用压缩。
压缩可以节省内存和带宽,但会降低精度。为每个导入对象设置的整个网格压缩将覆盖在对象上设置顶点压缩。所有其他内容都遵循这些顶点压缩设置。
Optimize Mesh Data 启用此选项可从网格中删除应用于网格的材质不需要的所有数据(例如切线、法线、颜色和 UV)。

Logging

选择在特定上下文中允许的日志记录类型。

WebGL 平台的 Logging 设置
WebGL 平台的 Logging 设置

选中运行脚本时 (ScriptOnly)、始终 (Full) 或从不 (None) 条件下对应于每个 Log Type(ErrorAssertWarningLogException)的复选框。

Legacy

启用 Clamp BlendShapes (Deprecated) 选项可在 SkinnedMeshRenderers 中钳制混合形状权重的范围。

WebGL 平台的 Legacy 设置
WebGL 平台的 Legacy 设置

Publishing settings

WebGL 平台的 Publishing settings
WebGL 平台的 Publishing settings
设置 功能
Enable Exceptions 选择在运行时如何处理意外的代码行为(通常视为错误)。选项包括:_NoneExplicitly Thrown Exceptions OnlyFull Without Stacktrace_ 和 Full With Stacktrace。有关详细信息,请参阅构建和运行 WebGL 项目页面。
Compression Format 选择要用于发布版本文件的压缩格式。选项包括:_GzipBrotli_ 或 _Disabled_(无)。请注意,此选项不会影响开发版本。
Name Files As Hashes 启用此选项可使用未压缩文件内容的 MD5 哈希作为构建中每个文件的文件名。
Data caching 启用此选项可自动将内容资源数据缓存在用户计算机上,这样就不必在后续运行中重新下载(除非内容已更改)。
缓存是使用浏览器提供的 IndexedDB API 实现的。有些浏览器可能会对此实施限制,例如要求用户进行授权才能缓存超过特定大小的数据。
Debug Symbols 启用此选项可在发生错误时保留调试符号并执行堆栈跟踪的恢复(显示原始函数名称)。对于发布版本,所有调试信息都存储在单独的文件中;发生错误时将根据需要从服务器下载该文件。开发版本始终具有嵌入在主模块中的恢复支持,因此不受此选项的影响。
WebAssembly Streaming 允许支持的浏览器直接从流式底层源代码编译和实例化 WebAssembly 模块。

  • 2019–06–10 页面已修订

  • 2017.3 版中更新了发布设置 NewIn20173

  • 在 Unity 2018.1 中添加了 Allow ‘unsafe’ code 复选框

  • 在 2018.1 版中添加了 .NET 4.x 运行时

  • 在 Unity 2018.3 中已弃用 .Net 3.5 脚本运行时 NewIn20183

  • 2019.1 中添加了 WebAssembly Streaming 设置 NewIn20191

  • 在 Unity 2019.1 中添加了输入系统预览

  • 在 Unity 2019.1 中删除了 asm.js 链接器目标

WebGL 开发入门
构建和运行 WebGL 项目