Version: Unity 6.0 (6000.0)
语言 : 中文
将 Unity 集成到 Windows 应用程序中
以 Windows 为开发目标

Windows 播放器设置

本页面将详细介绍 Windows 特有的__播放器 (Player)__。有关常规__播放器__设置的描述,请参阅播放器设置 (Player Settings) 相关文档。

Windows 播放器设置
Windows 播放器设置

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

图标

启用__覆盖 Windows、Mac、Linux (Override for Windows, Mac, Linux)__ 设置,为桌面游戏指定自定义图标。可以上传不同大小的图标来填充提供的每个方块。

桌面平台的图标设置
桌面平台的图标设置

分辨率和演示

使用__分辨率和演示 (Resolution and Presentation)__ 部分可在分辨率 (Resolution)独立平台播放器选项 (Standalone Player Options) 部分中自定义屏幕的外观方面。

分辨率

此部分可以自定义屏幕模式和默认大小。

桌面播放器平台的分辨率部分
桌面播放器平台的分辨率部分
属性 描述
Run In background 启用此选项可在应用程序失去焦点时继续在后台运行。禁用时,应用程序会在失去焦点时暂停。
Fullscreen Mode 选择全屏模式。此设置定义了启动时的默认窗口模式。
Fullscreen Window 将应用程序窗口设置为全屏原生显示分辨率,覆盖整个屏幕。此模式也称为无边框全屏。Unity 会根据脚本设置的分辨率渲染应用程序内容,如果没有设置,则使用原生显示分辨率,并将其缩放以填充窗口。在缩放过程中,Unity 会添加黑边以匹配显示宽高比,从而防止内容拉伸。这一过程称为黑边填充。操作系统界面(例如 IME 输入窗口)会显示在全屏窗口的顶部。所有平台均支持此模式。
独占全屏(仅限 Windows) 设置应用程序以独占方式全屏使用显示器。与全屏窗口不同,此模式会更改显示器的操作系统分辨率以匹配应用程序选择的分辨率。仅在 Windows 操作系统上支持。
最大化窗口(仅限 Windows 和 Mac) 将应用程序窗口设置为操作系统的最大化状态。在 Windows 上,这是一个带有标题栏的全屏窗口。在 macOS 上,这是一个带有隐藏菜单栏和停靠栏的全屏窗口。对于其他平台,默认设置为全屏窗口
窗口化 将应用程序设置为标准的非全屏可移动窗口,窗口大小取决于应用程序的分辨率。在此模式下,默认情况下窗口可调整大小。可以通过可调整窗口大小设置禁用此功能。所有桌面平台都支持此全屏模式。
Default Is Native Resolution 启用此选项可使游戏使用目标设备的默认分辨率。
注意:如果将__全屏模式__设置为窗口化,此属性将不可见。
Default Screen Width 设置游戏画面的默认宽度(以像素为单位)。

注意:仅当__全屏模式__设置为窗口化时,此属性才可见。
Default Screen Height 设置游戏画面的默认高度(以像素为单位)。

注意:仅当__全屏模式__设置为窗口化时,此属性才可见。
Mac Retina Support 启用此选项可在 Mac 上启用高 DPI (Retina) 屏幕支持。Unity 默认情况下启用此功能。启用后可提升在 Retina 显示屏上的显示效果,但会增加一定的资源消耗。

独立平台播放器选项

使用独立平台播放器选项 (Standalone Player Options) 可指定用户可以如何自定义屏幕。例如,可以决定用户是否可以调整屏幕大小以及可以同时运行多少个实例。

独立平台播放器平台的 Standalone Player Options 设置
独立平台播放器平台的 Standalone Player Options 设置
属性 描述
Use Player Log 启用此选项可向日志文件写入调试信息。默认情况下会启用此选项。
Resizable Window 启用此选项可调整桌面端播放器窗口的大小。
注意:如果禁用此选项,则应用程序无法使用窗口化全屏模式
Visible in Background 如果已使用窗口化全屏模式,启用此选项可在背景中显示应用程序。
注意:这会导致无法使用最小化应用程序窗口的键盘快捷键(例如 Alt+TabWindows+M)。有关更多信息,请参阅 PlayerSettings.visibleInBackground
Allow Fullscreen Switch 启用此选项可允许通过默认操作系统全屏按键在全屏模式和窗口模式之间切换。
Force Single Instance 启用此选项可将桌面端播放器限制为单个并发运行实例。
Use DXGI flip model swap chain for D3D11 使用翻转模型可确保最佳性能。此设置会影响 D3D11 图形 API。禁用此选项可回退到 Windows 7 风格的 BitBlt 模型。有关更多信息,请参阅 PlayerSettings.useFlipModelSwapchain

启动画面

使用__虚拟现实启动画面 (Virtual Reality Splash Image)__ 设置以选择虚拟现实 (Virtual Reality) 显示的自定义启动画面。有关常见启动画面 (Splash Screen) 设置的信息,请参阅启动画面

桌面平台的启动画面播放器设置
桌面平台的启动画面播放器设置

其他设置

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

渲染

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

属性 描述
Color Space 选择要用于渲染的颜色空间。有关更多信息,请参阅线性渲染概述
Gamma Gamma 颜色空间通常用于帧缓冲区格式的每通道限制为 8 位的旧硬件上的光照计算。即使当今的监视器是数字显示器,它们仍会采用伽马编码信号作为输入信号。
Linear 线性颜色空间渲染可提供更精确的结果。选择线性颜色空间时,编辑器默认启用 sRGB 采样。如果纹理 处于线性颜色空间,则需要在编辑器中禁用每个纹理的 sRGB 采样。
MSAA Fallback 如果设备不支持用户请求的采样数,请选择多重采样抗锯齿回退策略来进行采样数升级或降级。
升级 采样数量会减少到受支持的最近较低采样数量。
降级 采样数量会增加到下一个更高的采样数量。如果不支持该采样数量,则会减少到受支持的最近较低采样数量。
Auto Graphics API for Windows 启用此选项,游戏将在 Windows 平台上使用推荐的图形 API。禁用此选项,可手动添加或移除支持的图形 API。
Auto Graphics API for Mac 启用此选项,游戏将在 Mac 平台上使用推荐的图形 API。禁用此选项,可手动添加或移除支持的图形 API。Windows 不支持此属性。
Auto Graphics API for Linux 启用此选项,游戏将在 Linux 平台上使用推荐的图形 API。禁用此选项,可手动添加或移除支持的图形 API。
Color Gamut 您可以添加或移除色域 以用于渲染。单击加号 (+) 图标以查看可用色域的列表。色域定义了特定设备(如显示器或屏幕)能够呈现的颜色范围。sRGB 色域是默认色域(也是必需色域)。
Static Batching 启用此选项可使用静态批处理
Dynamic Batching 在构建中启用动态批处理(默认情况下启用)。

注意:可编程渲染管线 处于激活状态时,动态批处理将无效。因此,仅当 可编程渲染管线资源图形 设置为空时,此设置才会显示。
精灵批处理阈值 (Sprite Batching Threshold) 控制批处理时使用的最大顶点阈值。
GPU Skinning 通过着色器在 GPU 上计算网格蒙皮和混合形状,从而释放 CPU 资源并提升性能。
GPU 选择此选项可在 GPU 上执行网格蒙皮和混合形状的计算。
CPU 选择此选项可在 CPU 上执行网格蒙皮和混合形状的计算。
GPU (Batched) 选择此选项可启用批处理和重新排序,在 GPU 上执行网格蒙皮和混合形状的计算。批处理可减少对 GPU 的调度调用次数,从而提升性能。
Graphics Jobs 启用此选项后,Unity 会将图形任务(渲染循环)分配到其他 CPU 核心上运行的工作线程中。此功能可以减少主线程中 Camera.Render 的执行时间,而这一环节通常是性能瓶颈所在。
图形作业模式 (Graphics Jobs Mode) 指定要在应用程序中使用的图形作业模式。有关 Unity 中的作业的信息,请参阅作业系统

注意:仅当启用了 Graphics Jobs 并将 Graphics API 设置为 DX12 或 Vulkan 时,此选项才可用。
Native 主线程为工作线程生成 Unity 图形命令。工作线程将命令写入任务执行器,由渲染线程进行处理。
Legacy 主线程为工作线程生成 Unity 图形命令。工作线程将命令直接写入渲染线程。渲染线程读取 Unity 图形命令,并将其转换为原生图形命令。
Split 主线程为工作线程生成 Unity 图形命令。渲染线程读取 Unity 图形命令,并将其转换为原生图形命令。渲染线程随后启动工作线程,用于写入原生图形命令。
Lightmap Encoding 定义影响光照贴图的编码方案和压缩格式。
您可以选择 Low QualityNormal QualityHigh Quality
HDR 立方体贴图编码 (HDR Cubemap Encoding) 定义 HDR 立方体贴图的编码方案和压缩格式。
您可以选择 Low QualityNormal QualityHigh Quality。有关更多信息,请参阅 光照贴图:技术信息
Lightmap Streaming 启用此选项可对光照贴图使用Mipmap 串流。Unity 在生成所有光照贴图时将此设置应用于这些光照贴图。
注意:要使用此设置,必须启用纹理 Mipmap 串流质量 设置。
Streaming Priority 设置 Mipmap 串流系统 中所有光照贴图的优先级。Unity 在生成所有光照贴图时将此设置应用于这些光照贴图。
数值越大,优先级越高。有效值范围为 -128127
Frame Timing Stats 启用此属性可使用 FrameTimingManager API 收集 CPU 和 GPU 帧时序数据。如果禁用此属性,动态分辨率 摄像机设置将无法利用这些数据动态调整分辨率,以降低 GPU 负载。
OpenGL:Profiler GPU 录制器 启用 GPU 录制器支持并禁用 GPU 性能分析器。OpenGL API 不支持同时启录制器和性能分析器。如果需要使用 GPU 性能分析器,请禁用此属性。
允许 HDR 显示输出 在应用程序运行时启用 HDR 模式输出。此设置仅适用于支持该功能的显示屏。如果显示屏不支持 HDR 模式,则游戏将在标准模式下运行。
Use HDR Display Output 检查主显示器是否支持 HDR,如果支持,则在应用程序启动时切换到 HDR 输出。

注意:此选项仅在启用允许 HDR 显示输出时可用。
Swap Chain Bit Depth 选择交换链缓冲区中每个颜色通道的位深度。仅在启用 HDR 模式时可用。
Bit Depth 10 Unity 使用 R10G10B10A2 缓冲区格式,搭配 Rec2020 色域,并采用 ST2084 PQ 编码。
Bit Depth 16 Unity 使用 R16G16B16A16 缓冲区格式,搭配 Rec709 色域,并采用线性颜色空间(无编码)。
虚拟纹理(实验性)(Virtual Texturing (Experimental)) 如果场景包含大量高分辨率纹理,可降低 GPU 内存占用和纹理加载时间。有关更多信息,请参阅 虚拟纹理
注意:需要重新启动 Unity 编辑器才能使此功能生效。
360 Stereo Capture 指示 Unity 是否可以捕获立体 360 图像和视频。启用后,Unity 会编译其他着色器变体,以支持 360 度捕获(目前仅适用于 Windows/OSX)。enable_360_capture 关键字会在调用 RenderToCubemap 时添加,但不会在该函数外部触发。
加载/存储操作调试模式 (Load/Store Action Debug Mode) 突出显示可能导致移动平台上渲染问题的未定义像素。这会影响 Unity 编辑器中的游戏视图,并且如果在构建设置中选择了 Development Build,也会影响构建好的应用程序。请参阅 LoadStoreActionDebugModeSettings 以了解更多信息。
仅限编辑器 指示“加载/存储操作调试模式”是否仅在 Unity 编辑器中运行。

注意:此属性仅在“加载/存储操作调试模式”启用时可见。

Vulkan 设置

macOS 的 Vulkan 播放器设置。

属性 描述
SRGB Write Mode 启用此选项可允许通过Graphics.SetSRGBWrite() 在运行时切换 sRGB 写入模式。也就是说,如果要暂时关闭 Linear-to-sRGB 写入颜色转换,可以使用此属性来实现。启用此选项会对基于移动瓦片的 GPU 的性能产生负面影响;因此,请勿在移动端启用此功能。
Number of swapchain buffers 使用 Vulkan 渲染器,可以将此选项设置为 2 表示双缓冲,设置为 3 表示三缓冲。此设置可能有助于解决某些平台上的延迟问题,但在大多数情况下,您不应更改这个默认值 3。双缓冲可能会对性能产生负面影响。请勿在 Android 上使用此设置。
延迟获取交换链图像 (Acquire swapchain image late as possible) 如果启用此选项,Vulkan 会延迟获取后备缓冲区,直到将帧渲染到屏幕外图像。Vulkan 使用临时镜像来实现此目的。启用此设置会在呈现后备缓冲区时产生额外的 blit。此设置与双缓冲相结合可以提高性能。但这也可能导致性能问题,因为额外的 blit 会占用带宽。
命令缓冲区回收 (Recycle command buffers) 指示 Unity 执行命令缓冲区 后,是否对其进行回收或释放。

配置

桌面平台的配置设置
桌面平台的配置设置
属性 描述
Scripting Backend 选择要使用的脚本后端。脚本后端决定了 Unity 在项目中如何编译和执行 C# 代码。
Mono 将 C# 代码编译为 .NET 公共中间语言 (CIL),并通过公共语言运行时执行该 CIL。有关更多信息,请参阅 Mono
IL2CPP 将 C# 代码编译为 CIL,然后将 CIL 转换为 C++ 代码,最终将 C++ 编译成本地机器代码,该代码在运行时直接执行。请参阅 IL2CPP 以了解更多信息。
API Compatibility Level 选择项目中可以使用的 .NET API 版本。此设置可能会影响与第三方库的兼容性。但是,它对编辑器特定的代码(编辑器目录中的代码或编辑器特定的程序集定义中的代码)没有影响。

提示:如果您遇到第三方程序集的问题,可以尝试下文的 API 兼容性级别 部分中的建议。
.Net Framework 兼容 .NET Framework 4(包含 .NET Standard 2.0 配置文件中的所有内容以及额外的 API)。当使用的库需要访问 .NET Standard 2.0 中未包含的 API 时,请选择此选项。此选项会生成较大的构建文件,并且额外的 API 可能不被所有平台支持。更多信息,请参阅引用其他类库程序集
.Net Standard 2.1 生成较小的构建文件,并提供完整的跨平台支持。
编辑器程序集兼容性级别 选择在编辑器程序集中使用的 .NET API。
.NET Framework 兼容 .NET Framework 4(包含 .NET Standard 2.1 中的所有 API 以及额外的 API)。当使用的库需要访问 .NET Standard 2.1 未涵盖的 API 时,选择此选项。此选项会生成较大的构建文件,并且额外的 API 可能不被所有平台支持。更多信息,请参阅引用其他类库程序集
.NET Standard 兼容 .NET Standard 2.1。生成较小的构建文件,并提供完整的跨平台支持。
IL2CPP Code Generation 定义 Unity 如何管理 IL2CPP 代码生成。只有在使用 IL2CPP 脚本后端时才附带此选项。
更快的运行时 (Faster runtime) 生成针对运行时性能进行优化的代码。默认情况下会激活此设置。
更快(更小)的构建 (Faster (smaller) builds) 生成针对构建大小和迭代进行优化的代码。此设置生成的代码更少,生成的构建更小,但可能会降低通用代码的运行时性能。当需要更快的构建时间时(例如迭代更改时),请使用此选项。
C++ Compiler Configuration 选择用于编译 IL2CPP 生成代码的 C++ 编译器配置。
Debug Debug 配置禁用所有优化,这使得代码的编译速度更快,但运行速度较慢。
Release Release 配置启用优化,使编译后的代码运行速度更快,生成的二进制文件体积更小,但编译时间会更长。
Master Master 配置启用所有可能的优化,以最大限度地提升性能。例如,在使用 MSVC++ 编译器的平台上,此配置会启用链接时代码生成。使用此配置编译代码的时间可能会显著长于 Release 配置。如果可以接受构建时间的增加,Unity 建议使用 Master 配置来构建游戏的发布版本。
IL2CPP Stacktrace 信息 选择要在堆栈跟踪中包含的信息类型。有关信息类型的更多详细信息,请参阅使用 IL2CPP 的托管堆栈跟踪
方法名称 在堆栈跟踪中包含每个托管方法的名称。
方法名称、文件名和行号 在堆栈跟踪中包含每个托管方法的名称、文件名和行号信息。

注意:启用此选项可能会增加构建时间和最终程序的体积。
Use incremental GC 启用增量式垃圾回收器,该功能可将垃圾回收任务分散到多个帧中,从而减少因垃圾回收导致的帧时间峰值。更多信息,请参阅自动内存管理
Allow downloads over HTTP (nonsecure) 表示是否允许通过 HTTP 下载内容。由于建议的协议为 HTTPS,因此默认选项为 Not allowed,这样更安全。
不允许 不允许通过 HTTP 下载。
创建开发版 仅允许在开发版中通过 HTTP 下载。
始终允许 允许在开发和发布版本中通过 HTTP 下载。
Active Input Handling 选择如何处理来自用户的输入。
Input Manager(旧版) 使用传统的输入 设置。
输入系统包(新版) 使用输入 系统。此选项需要您安装 InputSystem 包
Both 同时使用这两个系统。

API 兼容性级别

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

  1. 安装适用于 Windows 的 ILSpy
  2. 将遇到问题的 API 兼容性级别的 .NET 程序集拖入 ILSpy。这些可以在 Frameworks/Mono/lib/mono/YOURSUBSET/ 下找到。
  3. 拖入第三方程序集。
  4. 右键单击第三方程序集并选择分析 (Analyze)
  5. 在分析报告中,检查取决于 (Depends on) 部分。若第三方程序集所依赖的内容在所选的 .NET 兼容性级别中不可用,这些内容将以红色字体显示。

着色器设置

属性 描述
Shader Precision Model 选择着色器使用的默认精度。有关更多信息,请参阅在着色器中使用 16 位精度
平台默认值 在移动平台上使用较低的精度,在其他平台上使用全精度。
统一 如果平台支持,请使用较低的精度。
严格的着色器变体匹配 (Strict shader variant matching) 启用此选项后,如果在播放器构建中缺少着色器变体,将使用错误着色器进行渲染,并在控制台中显示错误。错误信息会明确指出着色器变体搜索所使用的着色器、子着色器索引、通道以及关键字
Keep Loaded Shaders Alive 保持所有加载的着色器处于活动状态,防止其被卸载。

着色器变体加载设置

使用这些设置可以控制着色器在运行时的内存使用量。

属性 描述
Default chunk size (MB) 设置 Unity 在构建的应用程序中为所有平台存储的压缩着色器变体数据块的最大大小。默认值为 16。有关更多信息,请参阅着色器加载
Default chunk count 设置 Unity 在所有平台上保留在内存中的解压缩块数量的默认限制。默认值为 0,表示无限制。
Override 启用此选项可为此构建目标覆盖__默认块大小__和__默认块数量__的设置。
Chunk size (MB) 覆盖此构建目标上的__默认块大小 (MB)__ 值。
Chunk count 覆盖此构建目标上的__默认块数量__值。

脚本编译

桌面平台的脚本编译设置
桌面平台的脚本编译设置
属性 描述
Scripting Define Symbols 设置自定义编译标志。有关更多详细信息,请参阅平台相关的编译
Additional Compiler Arguments 向此列表添加条目,以将附加参数传递给 Roslyn 编译器。每个附加参数使用一个新条目。
要创建新条目,请按“+”按钮。要删除条目,请按“-”按钮。
添加完所有所需参数后,单击应用 (Apply) 按钮,以便在后续编译中包含这些附加参数。还原 (Revert) 按钮可将此列表重置为最新应用的状态。
Suppress Common Warnings 禁用此设置可显示 C# 警告 CS0169CS0649
Allow ‘unsafe’ Code 启用对预定义程序集(例如,Assembly-CSharp.dll)中“不安全”C# 代码的编译。
对于程序集定义文件 (.asmdef),请选中其中一个 .asmdef 文件,并在打开的检视面板 (Inspector) 窗口中启用该选项。
Use Deterministic Compilation 禁用此设置可停止使用 -deterministic C# 编译标志。启用此设置后,每次编译生成的程序集在字节级别上完全相同。
有关更多信息,请参阅 Microsoft 的确定性编译器选项文档。

优化

桌面平台的优化设置
桌面平台的优化设置
属性 描述
Prebake Collision Meshes 在构建时将碰撞数据添加到网格
Preloaded Assets 设置一个资源数组,供播放器在启动时加载。
要添加新资源,请增加 Size 属性的值,随后在新出现的 Element 槽位中设置要加载的资源引用。
Strip Engine Code 如果希望 Unity Linker 工具移除项目中未使用的 Unity 引擎功能代码,请启用此选项。此设置仅适用于 IL2CPP 脚本后端。大多数应用程序不会使用所有可用的 DLL。启用此选项后,Unity 会移除应用程序未使用的 DLL,从而减小构建后的 Player 大小。如果您的应用程序正在使用一个或多个通常会在当前设置下被移除的类,则在尝试构建应用程序时,Unity 会显示一条调试消息。
Managed Stripping Level 选择 Unity 剥离未使用托管 (C#) 代码时的激进程度。在构建应用程序时,Unity Linker 进程可以从项目使用的托管 DLL 中剥离未使用的代码。剥离代码可以显著减小生成的可执行文件大小,但也可能会错误地删除正在使用的代码。

有关这些选项以及使用 IL2CPP 进行字节码剥离的更多信息,请参阅 ManagedStrippingLevel
最低 剥离类库、UnityEngine 和 Windows 运行时程序集,并复制所有其他程序集。
删除无法访问的托管代码以减少构建大小和 Mono/IL2CPP 构建时间。
运行 UnityLinker,进一步减小代码大小,超越 Low 级别所能实现的效果。可能需要使用自定义的 link.xml 文件,某些反射代码路径的行为可能会有所不同。
UnityLinker 将尽可能多地剥离代码这将进一步减小代码大小,超出 Medium 可以实现的效果,但某些方法的托管代码调试可能不再有效。可能需要使用自定义的 link.xml 文件,某些反射代码路径的行为可能会有所不同。
Vertex Compression 设置每个通道的顶点压缩。此设置会影响项目中的所有网格。
通常,顶点压缩用于减小网格数据在内存中的占用、减小文件大小,并提升 GPU 性能。

有关顶点压缩的配置方法及其限制的详细信息,请参阅压缩网格数据
Optimize Mesh Data 启用此选项可从用于构建的网格中移除未使用的顶点属性。此功能可减少网格数据量,从而有助于减小构建文件大小、缩短加载时间以及降低运行时内存占用。

警告:如果启用此选项,请勿在运行时更改材质或着色器设置。

有关更多信息,请参阅 PlayerSettings.stripUnusedMeshComponents
纹理 Mipmap 剥离 为所有平台启用 Mipmap 剥离功能。在构建过程中,Unity 会从纹理中剥离未使用的 Mipmap 级别。
Unity 通过将 Mipmap 级别与当前平台的质量设置进行比较,以确定哪些 Mipmap 级别未被使用。如果在当前平台的所有质量设置中都排除了某个 Mipmap 级别,Unity 会在构建时将这些 Mipmap 级别剥离。如果 QualitySettings.globalTextureMipmapLimit 被设置为一个已剥离的 Mipmap 级别,Unity 会将其值调整为最近的未剥离的 Mipmap 级别。

堆栈跟踪

根据所需的日志记录类型,启用与每种日志类型(ErrorAssertWarningLogException)对应的选项,以选择首选的堆栈跟踪方法。有关更多信息,请参阅堆栈跟踪日志记录。

属性 描述
从不记录任何日志。
ScriptOnly 仅在运行脚本时记录日志。
Full 始终记录日志。

旧版

属性 描述
Clamp BlendShapes(已弃用) 启用此选项可在 SkinnedMeshRenderer 中限制混合形状权重的范围。

捕获日志

属性 描述
Capture Startup Logs 启用此选项可在应用程序启动期间在日志文件中生成调试信息。
将 Unity 集成到 Windows 应用程序中
以 Windows 为开发目标