使用 Linux Unity 播放器设置(菜单:编辑 (Edit) > 项目设置 (Project Settings) > 播放器 (Player))以确定 Unity 如何构建和显示 Linux 应用程序。有关常规播放器设置的描述,请参阅播放器设置 (Player Settings) 相关文档。
您可以在以下部分找到这些属性的文档:
启用__覆盖 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 显示屏上的显示效果,但会增加一定的资源消耗。 | |
使用此部分可指定屏幕自定义设置。例如,可以设置选项用于让用户调整屏幕大小并指定可以同时运行的实例数。
| 属性 | 功能 |
|---|---|
| Use Player Log | 启用此选项可向日志文件写入调试信息。默认启用。 警告:如果计划将应用程序提交到 Mac App Store,则禁用此选项。有关更多信息,请参阅发布到 Mac App Store。 |
| Resizable Window | 启用此选项可调整播放器窗口的大小。 注意:如果禁用此选项,则应用程序无法使用窗口化全屏模式。 |
| Visible in Background | 如果已使用窗口化全屏模式,启用此选项可在背景中显示应用程序(在 Windows 中)。 |
| Allow Fullscreen Switch | 启用此选项可允许通过默认操作系统全屏按键在全屏模式和窗口模式之间切换。 |
| Force Single Instance | 启用此选项可将桌面端播放器限制为单个并发运行实例。 |
| Use DXGI flip model swap chain for D3D11 | 使用翻转模型可确保呈现应用程序的最佳性能。每次需要显示帧时,Unity 都会创建交换链表面的副本并以__ blit__“位块传输 (Bit Block Transfer)”的简写。blit 操作是将数据块从内存中的一个位置传输到另一个位置的过程。 See in Glossary 方式将其传输到屏幕缓冲区。此设置会影响 D3D11 图形 API。禁用此选项可回退到 Windows 7 风格的 BitBlt 模型。在窗口化(无边框)全屏模式下运行时,Unity 会直接在屏幕上显示应用程序交换链,从而将输入延迟减少一帧,并消除桌面窗口管理器 (Desktop Window Manager) 完成的桌面合成,其方式与独占全屏相同。此优化称为“独立翻转 (Independent Flip)”。有关更多信息,请参阅 PlayerSettings.useFlipModelSwapchain。 |
使用虚拟现实启动画面 (Virtual Reality Splash Image) 设置以选择虚拟现实 (Virtual Reality) 显示的自定义启动画面。有关常见的启动画面设置,请访问启动画面页面。
##其他设置
此部分可以自定义一系列选项,这些选项分为以下几组:
使用这些设置可自定义 Unity 针对桌面端(Windows、Mac、Linux)平台渲染游戏的方式。
| 属性 | 描述 | |
|---|---|---|
| Color Space | 选择要用于渲染的颜色空间。有关更多信息,请参阅线性渲染概述。 | |
| Gamma | Gamma 颜色空间通常用于帧缓冲区格式的每通道限制为 8 位的旧硬件上的光照计算。即使当今的监视器是数字显示器,它们仍会采用伽马编码信号作为输入信号。 | |
| Linear | 线性颜色空间渲染可提供更精确的结果。选择线性颜色空间时,编辑器默认启用 sRGB 采样。如果纹理 处于线性颜色空间,则需要在编辑器中禁用每个纹理的 sRGB 采样。 | |
| Auto Graphics API for Windows | 启用此选项可在运行应用程序的 Windows 计算机上使用最佳图形 API。禁用此选项可添加和删除支持的图形 API。 | |
| Auto Graphics API for Mac | 启用此选项可在运行应用程序的 macOS 计算机上使用最佳图形 API。禁用此选项可添加和删除支持的图形 API。 | |
| Auto Graphics API for Linux | 启用此选项可在运行应用程序的 Linux 计算机上使用最佳图形 API。禁用此选项可添加和删除支持的图形 API。 | |
| color-gamut | 此设置不适用于 Linux。 | |
| Static Batching | 启用此选项可使用静态批处理。 | |
| GPU Skinning | 启用此选项可使用着色器在 GPU 上计算网格蒙皮和混合形状。 | |
| Graphics Jobs | 启用此选项后,Unity 会将图形任务(渲染循环)分配到其他 CPU 核心上运行的工作线程中。此功能可以减少主线程中 Camera.Render 的执行时间,而这一环节通常是性能瓶颈所在。 |
|
| Lightmap Encoding | 定义影响光照贴图的编码方案和压缩格式。 您可以选择 Low Quality、Normal Quality 或 High Quality。 |
|
| HDR 立方体贴图编码 (HDR Cubemap Encoding) | 定义 HDR 立方体贴图的编码方案和压缩格式。 您可以选择 Low Quality、Normal Quality 或 High Quality。有关更多信息,请参阅 光照贴图:技术信息。 |
|
| Lightmap Streaming | 启用此选项可对光照贴图使用Mipmap 串流。Unity 在生成所有光照贴图时将此设置应用于这些光照贴图。 注意:要使用此设置,必须启用纹理 Mipmap 串流质量 设置。 |
|
| Streaming Priority | 设置 Mipmap 串流系统 中所有光照贴图的优先级。Unity 在生成所有光照贴图时将此设置应用于这些光照贴图。 数值越大,优先级越高。有效值范围为 -128 到 127。 |
|
| Frame Timing Stats | 启用此选项可收集 CPU/GPU 帧时序统计信息。 | |
| Allow HDR Display Output | 在应用程序运行时激活 HDR 模式输出。此设置仅适用于支持该功能的显示屏。如果显示屏不支持 HDR 模式,则游戏将在标准模式下运行。 | |
| 允许 HDR 显示输出 | 在应用程序运行时启用 HDR 模式输出。此设置仅适用于支持该功能的显示屏。如果显示屏不支持 HDR 模式,则游戏将在标准模式下运行。 | |
| Use HDR Display Output | 检查主显示器是否支持 HDR,如果支持,则在应用程序启动时切换到 HDR 输出。 注意:此选项仅在启用允许 HDR 显示输出时可用。 |
|
| Virtual Texturing(实验性) | 如果场景中有许多高分辨率纹理,启用此选项可以减少 GPU 内存使用量和纹理加载时间。有关更多信息,请参阅 虚拟纹理。 注意:Unity 编辑器需要重新启动才能使此设置生效。 |
|
| 360 Stereo Capture | 指示 Unity 是否可以捕获立体 360 图像和视频。启用后,Unity 会编译其他着色器变体,以支持 360 度捕获(目前仅适用于 Windows/OSX)。enable_360_capture 关键字会在调用 RenderToCubemap 时添加,但不会在该函数外部触发。 |
|
| 加载/存储操作调试模式 (Load/Store Action Debug Mode) | 突出显示可能导致移动平台上渲染问题的未定义像素。这会影响 Unity 编辑器中的游戏视图,并且如果在构建设置中选择了 Development Build,也会影响构建好的应用程序。请参阅 LoadStoreActionDebugModeSettings 以了解更多信息。 | |
| 属性 | 描述 | |
|---|---|---|
| SRGB Write Mode | 启用此选项可以让 Graphics.SetSRGBWrite() 渲染器在运行时切换 sRGB 写入模式。使用此属性可停用线性到 sRGB 写入颜色转换。 | |
| Number of swapchain buffers | 使用 Vulkan 渲染器,可以将此选项设置为 2 表示双缓冲,设置为 3 表示三缓冲。此设置可能有助于解决某些平台上的延迟问题,但通常不应更改这个默认值 3。双缓冲可能会对性能产生负面影响。 | |
| Acquire swapchain image late as possible | 启用此选项可在帧渲染到屏幕外临时图像后获取后备缓冲区。启用此设置会在呈现后备缓冲区时添加额外的 blit。此设置与双缓冲相结合可以提高性能。但是,由于额外的 blit 使用额外的带宽,因此也可能导致性能问题。 | |
| Recycle command buffers | 启用此选项可在 Unity 执行 CommandBuffer 后回收它们。 | |
本节中的属性仅适用于 macOS。有关更多信息,请参阅 macOS 播放器设置。
| 属性 | 描述 | |
|---|---|---|
| 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 | 生成较小的构建文件,并提供完整的跨平台支持。 | |
| IL2CPP Code Generation | 此设置不适用于 Linux。 | |
| C++ Compiler Configuraion | 此设置不适用于 Linux。 | |
| Use incremental GC | 启用增量式垃圾回收器,该功能可将垃圾回收任务分散到多个帧中,从而减少因垃圾回收导致的帧时间峰值。更多信息,请参阅自动内存管理。 | |
| Allow downloads over HTTP (nonsecure) | 表示是否允许通过 HTTP 下载内容。由于建议的协议为 HTTPS,因此默认选项为 Not allowed,这样更安全。 | |
| 不允许 | 不允许通过 HTTP 下载。 | |
| 创建开发版 | 仅允许在开发版中通过 HTTP 下载。 | |
| 始终允许 | 允许在开发和发布版本中通过 HTTP 下载。 | |
| Active Input Handling | 选择如何处理来自用户的输入。 | |
| Input Manager(旧版) | 使用传统的输入 设置。 | |
| 输入系统包(新版) | 使用输入 系统。此选项需要您安装 InputSystem 包。 | |
| Both | 同时使用这两个系统。 | |
可为所有目标选择 mono API 兼容性级别。有时,第三方 .NET 库会使用 .NET 兼容性级别之外的功能。要了解在这种情况下可能发生的问题以及如何以最佳方案修复问题,请尝试以下解决方案:
Frameworks/Mono/lib/mono/YOURSUBSET/ 下找到。本节仅适用于 macOS。有关更多信息,请参阅 macOS 播放器设置。
| 属性 | 描述 | |
|---|---|---|
| Shader Precision Model | 选择着色器使用的默认精度。有关更多信息,请参阅在着色器中使用 16 位精度。 | |
| 平台默认值 (Platform default) | 在移动平台上使用较低的精度,在其他平台上使用全精度。 | |
| 统一 (Unified) | 如果平台支持,请使用较低的精度。 | |
| 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 | 设置自定义编译标志。 有关更多详细信息,请参阅平台相关的编译。 |
| 其他编译器参数 | 向此列表添加条目,以将附加参数传递给 Roslyn 编译器。每个附加参数使用一个新条目。 要创建新条目,请点击 Add (+)。要删除条目,请点击 Remove(-)。 添加完所有所需参数后,点击 Apply,以便在后续编译中包含这些附加参数。点击 Revert 可将此列表重置为最新应用的状态。 |
| 禁止常见警告 | 指示是否显示 C# 警告 CS0169 和 CS0649。 |
| Allow ‘unsafe’ Code | 启用对预定义程序集(例如,Assembly-CSharp.dll)中“不安全”C# 代码的编译支持。对于程序集定义文件 ( .asmdef),请选中其中一个 .asmdef 文件,并在打开的检视面板窗口中启用该选项。 |
| 使用确定性编译 | 指定是否禁用 -deterministic C# 编译标志。启用此设置后,每次编译生成的程序集在字节级别上完全一致。 有关更多信息,请参阅 C# 编译器选项:控制代码生成。 |
| 属性 | 描述 | |
|---|---|---|
| Prebake Collision Meshes | 在构建时将碰撞数据添加到网格。 | |
| Preloaded Assets | 设置一个资源数组,供播放器在启动时加载。 要添加新资源,请增加 Size 属性的值,随后在新出现的 Element 槽位中设置要加载的资源引用。 |
|
| 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 级别。 |
|
通过启用与每种日志类型对应的选项来选择您的首选日志记录类型。
| 属性 | 描述 |
|---|---|
| None | 从不记录任何日志。 |
| ScriptOnly | 仅在运行脚本时记录日志。 |
| Full | 始终记录日志。 |
有关更多信息,请参阅堆栈跟踪日志记录。
| 属性 | 功能 |
|---|---|
| Clamp BlendShapes(已弃用) | 启用此选项可在 SkinnedMeshRenderer 中限制混合形状权重的范围。 |