包含此页的版本:
不含此页的版本:
使用播放器设置了解 Unity 如何构建 将项目编译为可在特定平台或平台上运行的格式的过程。更多信息
请参阅术语表并显示最终的 Web 应用程序。有关常规播放器设置的说明,请参阅播放器设置。
注意:Facebook 即时游戏平台共享这些设置。
访问 Web玩家设置设置,用于为 Unity 构建的最终游戏设置各种特定于玩家的选项。更多信息
请参阅术语表:
您可以在以下部分中找到有关属性的文档:
注意:尽管“图标”面板显示在 Web 播放器设置中,但没有可用的图标设置,因为 Web 游戏不使用图标。
有关 Web 发布设置的详细信息,请参阅 Web 构建和运行。
使用“分辨率和演示”部分在“分辨率”部分中自定义屏幕外观的各个方面。
您可以通过编辑以下选项来自定义 Web 画布元素的屏幕模式和默认大小:
| 设置 | 功能 |
|---|---|
| 默认画布宽度(Default Canvas Width) | 设置 Web 画布元素的宽度。 |
| 默认画布高度 | 设置 Web 画布元素的高度。 |
| 在后台运行 | 启用此选项可允许内容在画布或浏览器窗口失去焦点时继续运行。 |
选择要用于 Web 项目的模板:
您可以使用自己的模板,按照 Web 模板中的说明在与已完成游戏类似的环境中运行游戏。
使用虚拟现实初始图像设置选择自定义初始图像XR一个总称,包括虚拟现实 (VR)、增强现实 (AR) 和混合现实 (MR) 应用。支持这些形式的交互式应用程序的设备可以称为 XR 设备。更多信息
请参阅术语表显示。有关常见初始屏幕设置的信息,请参阅初始屏幕。
此部分允许您自定义一系列选项,这些选项分为以下组:
使用这些设置可以自定义 Unity 为 Web 平台渲染游戏的方式。
| 设置 | 功能 |
|---|---|
| 色彩空间 | 选择要用于渲染的色彩空间。有关更多信息,请参阅色彩空间。 |
| 自动图形 API | 启用默认的 Web 图形 API (WebGL 2.0)。默认情况下,此选项处于启用状态。 禁用此选项可显示“图形 API”列表,您可以在其中手动选取和重新排序图形 API。 |
| 图形 API | 将此列表中的第一个 API 作为项目的默认 Web 图形 API 的优先级。如果浏览器不支持该 API 或存在其他问题,Unity 会尝试列表中的下一个 API(如果存在)作为后备。 单击并拖动列表中的条目以重新排序它们。有关 Web 图形 API 的详细信息,请参阅 Web 图形 API。仅当禁用自动图形 API 时, 此属性才可用。 |
| 静态批处理 | 启用此选项以使用静态批处理Unity 用于在屏幕上绘制游戏对象的一种技术,用于将静态(非移动)游戏对象组合成大网格,并以更快的方式呈现它们。更多信息 请参阅术语表. |
| 动态批处理 | 用动态批处理 (Dynamic Batching)一种自动 Unity 过程,它尝试将多个网格体渲染为单个网格体,以优化图形性能。该技术转换 CPU 上的所有游戏对象顶点,并将许多相似的顶点组合在一起。更多信息 请参阅术语表(默认启用)。 注意:当可编写脚本的渲染管线处于活动状态时,动态批处理不起作用,因此仅当 可编写脚本的渲染管线资产图形(Scriptable Render Pipeline Asset Graphics) 设置为空时,此设置才可见。 |
| 图形作业(实验性) | 启用此选项可指示 Unity 将图形任务(渲染循环)卸载到在其他 CPU 内核上运行的工作线程。这是为了减少花费在Camera.Render在主线程上,这通常是一个瓶颈。注意:此功能是实验性的。它可能无法提高项目的性能,并且可能会引入新的崩溃。 |
| 纹理压缩格式 | 选择 DXT、ETC2 或 ASTC 以设置 Web 平台的纹理压缩格式。有关如何选择正确格式的信息,请参阅纹理压缩格式概述。要从脚本为桌面和移动浏览器创建构建,请参阅Web中的纹理压缩。 |
| 光照贴图编码 | 定义光照贴图的编码方案和压缩格式。 您可以选择低质量、正常质量或高质量 |
| HDR立方体贴图编码 | 定义HDR立方体贴图的编码方案和压缩格式。 您可以选择低质量、正常质量或高质量。有关更多信息,请参阅光照贴图:技术信息。 |
| 光照贴图流送 | 启用此选项可将Mipmap流送用于光照贴图。Unity 在生成所有光照贴图时将此设置应用于它们。 注意:要使用此设置,必须启用 纹理Mipmap流送质量(Texture Mipmap Streaming Quality) 设置。 |
| 流式处理优先级 | 设置Mipmap流送系统中所有光照贴图的优先级。Unity 在生成所有光照贴图时将此设置应用于它们。 正数具有更高的优先级。有效值范围为 -128自127. |
| 帧时序统计 | 启用此属性以使用 FrameTimingManager API 收集 CPU 和 GPU 帧时序数据。如果禁用此属性,动态分辨率(Dynamic Resolution)摄像机设置,允许你动态缩放单个渲染目标,以减少GPU上的工作负载。更多信息 请参阅术语表相机设置无法使用这些数据来动态调整分辨率以减少 GPU 工作负载。 |
| 虚拟纹理(实验性) | 如果您的场景具有许多高分辨率纹理,则减少GPU内存使用和纹理加载时间。有关更多信息,请参阅虚拟纹理。 注意:Unity 编辑器需要重新启动才能使此属性生效。 |
| 着色器精度模型 | 选择采样器的默认精度和half用于着色器。有关更多信息,请参阅 ShaderPrecisionModel。 |
| 360度立体捕捉 | 指示 Unity 是否可以捕获立体 360 度图像和视频。启用后,Unity 会编译其他着色器变体以支持 360 度捕获(目前仅在 Windows/OSX 上)。这enable_360_capture关键字在RenderToCubemap调用,但不会在此函数之外触发。 |
| 财产 | 描述 |
|---|---|
| 脚本后端 | 选择要使用的脚本后端。脚本后端决定了 Unity 如何在项目中编译和执行 C# 代码。 |
| API 兼容性级别 | 选择可在项目中使用的 .NET API。此设置可能会影响与第三方库的兼容性。但是,它对特定于编辑器的代码(编辑器目录中的代码,或特定于编辑器的程序集定义中的代码)没有影响。 提示:如果第三方程序集遇到问题,可以尝试 API 兼容性级别部分中的建议。
|
| 编辑器程序集兼容性级别 | 选择要在编辑器程序集中使用的 .NET API。
|
| IL2CPP 代码生成 | 定义 Unity 如何管理 IL2CPP 代码生成。 注意:要使用它,请将 Scripting Backend 设置为 IL2CPP。 |
| C++编译器配置 | 选择编译 IL2CPP 生成的代码时使用的 C++ 编译器配置。
|
| 使用增量 GC | 使用增量垃圾回收器,将垃圾回收分散到多个帧上,以减少与垃圾回收相关的帧持续时间峰值。有关详细信息,请参阅自动内存管理。 |
| 允许通过 HTTP 下载 | 指示是否允许通过 HTTP 下载内容。默认选项为“不允许”,因为推荐的协议是 HTTPS,这更安全。
|
| 主动输入处理 | 选择如何处理来自用户的输入。
|
使用这些设置来控制内存量着色器在 GPU 上运行的程序。更多信息
请参阅术语表在运行时使用。
| 财产 | 描述 |
|---|---|
| 默认块大小 (MB) | 设置 Unity 存储在所有平台的构建应用程序中的压缩着色器变体数据块的最大大小。默认值为16. 有关更多信息,请参阅着色器加载。 |
| 默认块计数 | 设置 Unity 在所有平台上在内存中保留的解压缩块数的默认限制。默认值为0,这意味着没有限制。 |
| 覆盖 | 启用覆盖此构建目标的 默认块大小(Default chunk size) 和 默认块计数(Default chunk count)。 |
| 块大小 (MB) | 替代此生成目标上的默认块大小 (MB) 的值。 |
| 块计数 | 覆盖此构建目标上的 默认区块计数(Default chunk count) 的值。 |
您可以为所有目标选择单一 API 兼容性级别。有时,第三方 .NET 库使用超出 .NET 兼容性级别的功能。要了解在这种情况下发生了什么以及如何最好地解决它,请尝试遵循以下建议:
Frameworks/Mono/lib/mono/YOURSUBSET/.
| 财产 | 描述 |
|---|---|
| 脚本定义符号 | 设置自定义编译标志。 有关更多详细信息,请参阅平台相关编译。 |
| 其他编译器参数 | 将条目添加到此列表,以将其他参数传递给 Roslyn 编译器。为每个附加参数使用一个新条目。 要创建新条目,请单击添加 (+)。要删除条目,请单击删除 (-)。 添加所有所需参数 后,单击“应用”以在将来的编译中包含其他参数。单击“恢复”将此列表重置为最近应用的状态。 |
| 禁止显示常见警告 | 指示是否显示 C# 警告 CS0169 和 CS0649。 |
| 允许“不安全”代码 | 支持在预定义程序集中编译“不安全”的 C# 代码(例如,Assembly-CSharp.dll).对于装配定义文件 ( .asmdef),单击您的.asmdef文件,并在显示的“检查器”窗口中启用该选项。 |
| 使用确定性编译 | 指示是否使用 -deterministic C# 标志阻止编译。启用此设置后,编译的程序集在每次编译时都是逐字节相同的。 有关详细信息,请参阅控制代码生成的 C# 编译器选项。 |
| 财产 | 描述 |
|---|---|
| 预烘焙碰撞网格体(Prebake Collision Meshes) | 在构建时将碰撞数据添加到网格体。 |
| 预加载资产 | 设置玩家在启动时加载的资产数组。 要添加新资产,请增加 Size 属性的值,然后在显示的新 元素(Element) 框中设置要加载的资产的引用。 |
| 剥离引擎代码 | 如果您希望 Unity Linker 工具删除项目不使用的 Unity Engine 功能的代码,请启用此选项。此设置仅适用于 IL2CPP 脚本后端。大多数应用不会使用所有可用的 DLL。此选项会删除应用未用于减小已生成播放器大小的 DLL。如果您的应用程序使用一个或多个类,这些类通常会在当前设置下被剥离,则当您尝试构建应用程序时,Unity 会显示一条调试消息。 |
| 管理剥离级别 | 选择 Unity 剥离未使用的托管 (C#) 代码的积极程度。当 Unity 构建您的应用程序时,Unity Linker 进程可以从您的项目使用的托管 DLL 中剥离未使用的代码。剥离代码可以使生成的可执行文件更小,但有时可以删除正在使用的代码。 有关这些选项和使用 IL2CPP 剥离字节码的详细信息,请参阅 ManagedStrippingLevel。
|
| 启用内部探查器(已弃用) | 此功能已弃用,并将在未来版本的 Unity 中停用。请改用“探查器”窗口(菜单:窗口>分析>探查器)。 探查器收集应用程序性能数据并将报告打印到控制台。该报告包含每个 Unity 子系统在每一帧上执行所花费的毫秒数,平均为 30 帧。 |
| 顶点压缩(Vertex Compression) | 设置每个通道的顶点压缩。这会影响项目中的所有网格体。 通常,顶点压缩用于减小内存中网格体数据的大小、减小文件大小并提高 GPU 性能。 有关如何配置顶点压缩和此设置的限制的更多信息,请参阅压缩网格体数据。 |
| 优化网格数据 | 启用此选项可从构建中使用的网格体中剥离未使用的顶点属性。此选项可减少网格体中的数据量,这有助于减少构建大小、加载时间和运行时内存使用量。 警告:如果启用了此设置,请勿在运行时更改材质或着色器设置。 有关更多信息,请参阅 PlayerSettings.stripUnusedMeshComponents。 |
| 纹理Mipmap剥离 | 为所有平台启用 mipmap 剥离。它在构建时从纹理中剥离未使用的 mipmap 级别。 Unity 通过将 mipmap 级别与当前平台的质量设置进行比较来确定未使用的 mipmap 级别。如果从当前平台的每个质量设置中排除了 mipmap 级别,则 Unity 会在构建时从构建中剥离这些 mipmap 级别。 如果 QualitySettings.globalTextureMipmapLimit设置为已剥离的 mipmap 级别,则 Unity 会将该值设置为最接近的尚未剥离的 mipmap 级别。 |
选择 Web 平台的日志记录设置。
根据所需的日志记录类型,启用与每种日志类型(错误、断言、警告、日志和异常)相对应的选项,选择首选的堆栈跟踪方法。有关详细信息,请参阅堆栈跟踪日志记录。
| 财产 | 描述 |
|---|---|
| 没有 | 从未记录任何日志。 |
| 仅脚本 | 仅在运行时记录脚本一段代码,允许您创建自己的组件、触发游戏事件、随时间修改组件属性以及以您喜欢的任何方式响应用户输入。更多信息 请参阅术语表. |
| 满 | 一直记录。 |
启用 Clamp BlendShapes (Deprecated) 选项以限制蒙皮网格体渲染器中的混合形状权重范围。
使用 Publishing Settings 配置 Unity 如何构建 Web 平台应用程序。例如,您可以选择启用浏览器缓存以将其文件存储在构建中。
| 财产 | 描述 |
|---|---|
| 压缩格式 | 选择压缩一种存储数据的方法,可减少所需的存储空间量。请参阅纹理压缩、动画压缩、音频压缩、构建压缩。 请参阅术语表用于发布生成文件的格式。选项包括:Gzip、Brotli 和 Disabled(无)。此选项不会影响开发版本开发版本包括调试符号并启用探查器。更多信息 请参阅术语表. |
| 将文件命名为哈希值 | 启用此选项可使用未压缩文件内容的 MD5 哈希作为构建中每个文件的文件名。 |
| 数据缓存 | 启用此选项可自动将内容资产数据缓存在用户的计算机上,这样就不必在后续运行时重新下载(除非内容已更改)。 缓存是使用浏览器提供的 IndexedDB API 实现的。某些浏览器可能会对此实施限制,例如要求用户允许缓存特定大小的数据。 |
| 调试符号 | 从可用选项中进行选择,以指定如何在构建中添加调试符号。
|
| 解压缩回退 | 在加载器中包含构建文件的解压缩回退代码。如果无法根据所选压缩方法配置服务器响应标头,请使用此选项。 |
| 电源偏好 | 设置在多GPU设备上渲染时要使用的GPU的首选项。请注意,浏览器可能会忽略此首选项。
|
使用此部分可以自定义 Web 应用程序的 WebAssembly 语言功能。
| 财产 | 描述 |
|---|---|
| 启用例外 | 选择如何在运行时处理意外的代码行为(通常被视为错误)。
|
| 启用本机 C/C++ 多线程 | 启用此选项以使用面向 WebAssembly/ 的本机 Unity C/C++ 引擎代码SharedArrayBuffer多线程(实验性)。如果启用此设置,则服务器配置需要设置跨域开启器策略 (COOP)、跨域嵌入式策略 (COEP) 和跨域资源策略 (CORP) 标头。有关如何设置这些标头的示例,请参阅服务器配置代码示例。请注意,并非所有浏览器都支持SharedArrayBuffer.此设置不启用多线程 C# 代码,因为这需要进一步改进 WebAssembly 语言标准。建议禁用此选项,仅将其用于评估未来的 Web 功能。 |
| 启用 WebAssembly 2023 | 如果启用,生成的 WebAssembly 代码将以 WebAssembly 2023 为目标,这是 Unity 为一系列较新的 WebAssembly 语言功能创造的名称。这些功能包括:符号扩展作码、非捕获 fp 到 int 指令、大容量内存、JS BigInt 集成、WebAssembly.Table、原生 WebAssembly 例外和 SIMD(需要 Chrome ≥ 91(2021 年 5 月)、Firefox ≥ 89(2021 年 6 月)或 Safari ≥ 16.4(2023 年 3 月))。如果禁用,则以原始 WebAssembly MVP 为目标 功能集功能集是相关包的集合,可用于在 Unity 编辑器中实现特定结果。您可以直接在 Unity 的包管理器中管理功能集。更多信息请参阅术语表. |
| 使用 WebAssembly.Table | 如果您希望 Web 版本以WebAssembly.Table语言功能,以加快 JS-Wasm 互作和构建时间。禁用此选项后,Web 构建将针对旧的已弃用的 Emscripten-sDYNCALLSmodel 以向后兼容旧的 Unity Web JS 插件。建议为不使用任何旧的不兼容 JavaScript 插件的新项目启用此选项,如果使用.jslib依赖旧文件的文件dynCall()机制。注意: WebAssembly.Table不向后兼容。定位时WebAssembly.Table,使用 Emscripten 运行时函数getWasmTableEntry(functionPtr)将函数指针转换为可调用的 JS 函数,或 Emscripten 代码模板{{{ makeDynCall('sig', 'variableName') }}}(...args);进行函数指针调用。早期的 Emscripten 运行时函数系列dynCall_sig(ptr, ...args);不再支持WebAssembly.Table.有关代码示例,请参阅 Emscripten 文档。 |
| 启用 BigInt | 启用此选项以定位WebAssembly.BigIntlanguage 功能,并使用BigInt键入 WebAssembly,这会导致更快的构建时间和略小的代码大小。禁用此选项后,BigInt类型在 WebAssembly 中不可用。生成的 WebAssembly 代码依赖于 BigInt ABI 来获取包含 64 位变量的函数签名。如果您想针对不支持 Wasm BigInt 功能的旧浏览器,请禁用此选项。建议为新项目启用此选项,快速生成迭代时间,如果以向后兼容旧浏览器为目标很重要,则建议禁用它。注意:Wasm BigInt 功能至少需要 Chrome 85(2020 年 8 月 25 日)、Firefox 78(2020 年 6 月 30 日)、Safari 14.5(2021 年 4 月 26 日)或更高版本。 |
| 初始内存大小 | WASM 堆内存的初始大小,以兆字节 (MB) 为单位。默认情况下,此值设置为 32 MB。如果内存增长模式设置为无,则这也是 WASM 堆内存的最大大小。 |
| 内存增长模式 | 从以下选项中选择 WASM 堆内存的增长模式。推荐的选项是几何。
|
| 最大内存大小 | WASM 堆内存的最大大小(以 MB 为单位)。默认情况下,此设置为 2048 MB,这是建议的设置。您可以输入最大 4096 MB 的内存大小,但超过 2048 MB 的内部版本存在已知的 Firefox 和 Chrome 错误。此选项仅适用于内存增长模式(Memory Growth Mode) 线性(Linear) 或几何(Geometric)。 |
| 线性内存增长步骤 | 高级调整选项,用于控制 WASM 堆增长步骤(以 MB 为单位)。默认情况下,此值设置为 16 MB。16 MB 的增长步长表示每次需要增长时,堆都会增加 16 MB。仅当 内存增长模式(Memory Growth Mode) 设置为 线性(Linear) 时才可用。 |
| 几何内存增长步骤 | 高级调整选项,用于控制相对于当前堆大小的 WASM 堆增长因子。默认情况下,此值设置为 0.2。增长因子为 0.2 表示每次需要增加堆时,堆的大小都会增加 0.2 * currentHeapSize。仅当 内存增长模式(Memory Growth Mode) 设置为 几何(Geometric) 时才可用。 |
| 几何内存增长上限 (MB) | 高级调整选项,用于控制堆增长步骤的上限(以 MB 为单位)。默认情况下,此值设置为 96 MB。96MB 的增长上限意味着堆的大小最多增加 96 MB。仅当 内存增长模式(Memory Growth Mode) 设置为 几何(Geometric) 时才可用。 |
| 启用子模块剥离兼容性 | 如果启用,则生成可与 Web 剥离工具包的子模块剥离功能一起使用的构建。如果禁用,则生成不打算剥离子模块的构建。最好在不使用 Web 剥离工具包时禁用此选项,否则生成的代码大小可能会受到不利影响。 |
为了帮助优化 Web 生成和诊断潜在问题,可以通过启用此设置来查看诊断信息(当前仅限于内存使用情况)。启用后,构建上会出现一个图标,其中显示包含有关构建数据的叠加层。它适用于开发和发布版本。
要查看诊断信息,请在“播放器设置”窗口中启用“显示诊断覆盖”选项(“文件”>“构建配置文件”>“播放器设置”>“发布设置”)。
在桌面上,诊断图标显示在 Web 画布的页脚上:
在移动设备上,诊断图标显示在屏幕的右下角:
单击诊断图标。出现一个覆盖层,显示 JavaScript 内存,进一步细分以显示 WASM 堆内存使用情况:
覆盖屏幕上将显示以下诊断:
| 财产 | 功能 |
|---|---|
| JS 总内存 | JavaScript (JS) 堆的当前大小,包括未分配给任何 JS 对象的未使用内存(以兆字节为单位)。
|
| WASM 堆内存总量 | 线性内存,表示使用 Emscripten 编译的 C/C++ Unity 引擎的整个堆,包括以兆字节为单位的未分配内存。
|
| 页面加载到第一帧的时间 | 从页面加载开始到第一个应用程序帧呈现完成的总时间(以毫秒为单位)。
|
| 平均 FPS(10 秒) | 每秒最后 10 帧的平均值。
|
| 帧失速数量 | 与之前的帧相比,完成时间异常长的渲染帧数。 |
JS 内存信息是使用 performance.memory API 获取的,该 API 目前仅在 Chrome 或 Edge 上受支持。没有其他可用的 API 可以为 Safari 或 Firefox 返回此信息。
注意: 这performance.memoryiOS 设备不支持 API。
在不支持此 API 的浏览器上,将显示一条显示 N/A 的消息。
玩家设置WebGL