本页面将详细介绍 WebGL 平台特有的 Player 设置。有关常规 Player 设置的描述,请参阅 Player。
您可以在以下部分找到这些属性的文档:
注意:尽管 Icon 面板出现在 WebGL Player 窗口中,但其中没有图标设置,因为 WebGL 游戏不使用图标。此外,__Splash Image__ 面板上的唯一设置是通用 Splash Screen 设置。
有关 WebGL Publishing Settings 的更多信息,请参阅 WebGL 构建和运行页面。
此部分可以自定义大小和样式。
设置 | 功能 |
---|---|
Default Canvas Width | 设置 WebGL 画布元素的宽度。 |
Default Canvas Height | 设置 WebGL 画布元素的宽度。 |
Run In Background | 启用此选项将允许您的内容将在画布或浏览器窗口失去焦点时继续运行。 |
选择要用于 WebGL 项目的模板:
您可以指定自己的模板,以便在与之前完成的游戏类似的环境中运行游戏。遵循使用 WebGL 模板中的说明。
此部分可以自定义一系列选项,这些选项分为以下几组:
使用这些设置可自定义 Unity 针对 WebGL 平台渲染游戏的方式。
属性 | 功能 |
---|---|
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 (Experimental) | 启用此选项可指示 Unity 将图形任务(渲染循环)卸载到在其他 CPU 核心上运行的工作线程。此功能旨在减少主线程上 Camera.Render 所花费的时间,该时间通常成为瓶颈。注意:此功能是实验性的。可能无法为您的项目带来性能提升,并可能导致不稳定。 Unity 目前仅在使用 Vulkan 时支持图形作业 (Graphics Jobs),使用 OpenGL ES 时此设置无效。 |
Lightmap Streaming Enabled | 启用此选项可根据需要仅加载光照贴图 Mipmap 以渲染当前游戏摄像机。此值适用于生成的光照贴图纹理。 注意:要使用此设置,必须启用 Texture Streaming Quality 设置。 |
Streaming Priority | 设置光照贴图 Mipmap 串流优先级以解决资源冲突。这些值应用于生成的光照贴图纹理。 正数提供更高的优先级。有效值范围为 –128 到 127。 |
设置 | 功能 | |
---|---|---|
Scripting Runtime Version | 选择要在项目中使用的 .NET 实现。有关更多详细信息,请参阅 Microsoft 的 .NET 文档。 | |
.NET 3.5 Equivalent (Deprecated) | 一个实现 .NET 3.5 API 的 .NET 运行时。此功能已弃用,不应再使用。请使用 .NET 4。 | |
.NET 4.x Equivalent | 一个实现 .NET 4 API 的 .NET 运行时。此 API 比 .NET 3.5 更新,因此提供对更多 API 的访问、与更多外部库兼容并支持 C# 6。这是默认脚本运行时。 | |
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 不一定在所有平台上都受支持。有关更多信息,请参阅引用其他类库程序集。 |
|
Disable HW Statistics | 启用此选项可指示应用程序不要将有关硬件的信息发送到 Unity。默认情况下,Unity Android 应用程序向 Unity 发送匿名硬件统计信息。这提供了汇总信息,帮助开发人员做出决策。 | |
Scripting Define Symbols | 设置自定义编译标志。有关更多详细信息,请参阅平台相关的编译。 | |
Allow ‘unsafe’ Code | 允许在预定义的程序集(例如,Assembly-CSharp.dll )中编译“不安全”的 C# 代码。对于程序集定义文件 ( .asmdef ),请单击其中一个 .asmdef 文件,并在出现的 Inspector 窗口中启用该选项。 |
|
Active Input Handling | 选择您希望如何处理来自用户的输入。 | |
Input Manager | 使用传统的 Input 窗口。 | |
Input System (Preview) | 使用最新的输入系统。输入系统正在开发中。要试用输入系统的早期预览版,请安装 InputSystem 包。如果选择 Input System (Preview) 选项而没有安装该包,除了一些额外的处理之外,不会执行任何其他操作。 | |
Both | 并排使用两个系统。 |
可为所有目标选择 mono API 兼容性级别。有时,第三方 .NET 库会使用 .NET 兼容性级别之外的功能。为了解在这种情况下可能发生的问题以及如何以最佳方案修复问题,请尝试以下解决方案:
Frameworks/Mono/lib/mono/YOURSUBSET/
下找到它们。设置 | 功能 | |
---|---|---|
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)。 |
选择在特定上下文中允许的日志记录类型。
选中运行脚本时 (ScriptOnly)、始终 (Full) 或从不 (None) 条件下对应于每个 Log Type(__Error、Assert、Warning、Log__ 和 __Exception__)的复选框。
启用 Clamp BlendShapes (Deprecated) 选项可在 SkinnedMeshRenderers 中钳制混合形状权重的范围。
设置 | 功能 |
---|---|
Memory Size | 设置 WebGL 运行时可用的内存(以 MB 为单位)。应小心选择此值:如果值太低,您将看到内存不足错误,因为加载的内容和场景将在可用内存中装不下。但是,如果请求太多内存,某些浏览器/平台组合可能无法提供此数量,因此无法加载播放器。请参阅 WebGL 中的内存以了解详细信息。 |
Enable Exceptions | 选择在运行时如何处理意外的代码行为(通常视为错误)。选项包括:_None、Explicitly Thrown Exceptions Only、Full Without Stacktrace_ 和 Full With Stacktrace。有关详细信息,请参阅构建和运行 WebGL 项目页面。 |
Compression Format | 选择要用于发布版本文件的压缩格式。选项包括:_Gzip、Brotli_ 或 Disabled_(无)。请注意,此选项不会影响开发版本。 |
|Name Files As Hashes|启用此选项可使用未压缩文件内容的 MD5 哈希作为构建中每个文件的文件名。|
|Data caching|启用此选项可自动将内容资源数据缓存在用户计算机上,这样就不必在后续运行中重新下载(除非内容已更改)。 缓存是使用浏览器提供的 IndexedDB API 实现的。有些浏览器可能会对此实施限制,例如要求用户进行授权才能缓存超过特定大小的数据。| |Debug Symbols|启用此选项可在发生错误时保留调试符号并执行堆栈跟踪的恢复。对于发布版本,所有调试信息都存储在单独的文件中;发生错误时将根据需要从服务器下载该文件。开发版本始终具有嵌入在主模块中的恢复支持,因此不受此选项的影响。| |Linker Target|选择要生成的构建类型:_asm.js、WebAssembly 或 Both。 asm.js 在浏览器中得到广泛支持,而 WebAssembly 是一种新的高效 Web 格式。如果选择 _Both_,Unity 将生成 WebAssembly 和 asm.js 格式。然后,在运行时,如果浏览器支持 WebAssembly,则使用 WebAssembly;否则回退到 asm.js。 |
在 Unity 2018.3 中已弃用 .Net 3.5 脚本运行时 NewIn20183
2018–08–16 页面已修订但未经编辑审查
在 2017.3 版中更新了发布设置 NewIn20173
在 Unity 2018.1 中添加了 Allow ‘unsafe’ code 复选框
在 2018.1 版中添加了 .NET 4.x 运行时
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.