Version: Unity 6.0 (6000.0)
语言 : 中文
Set up your environment for Embedded Linux
嵌入式 Linux 开发

嵌入式 Linux Player 设置

嵌入式 Linux Player 设置可让您自定义 Unity 构建和显示最终应用程序的方式。要访问嵌入式 Linux Player 的设置窗口,请选择 Edit > Project Settings > Player,然后选择 Embedded Linux 选项卡。您可以使用 PlayerSettings API 来控制此窗口中的大多数可用设置。有关常规播放器设置的描述,请参阅 Player Settings 相关文档。

常规设置

播放器设置因已安装的平台模块而异。每个平台都有自己的播放器设置,您必须为要构建的应用程序的各个版本完成这些设置。要在它们之间导航,请点击带有相应平台操作系统图标的选项卡。

嵌入式 Linux 的主 Player Settings 窗口
嵌入式 Linux 的主 Player Settings 窗口

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

图标 (Icon)

启用嵌入式 LinuxOverride 设置,为游戏指定自定义图标。

分辨率和演示 (Resolution and Presentation)

使用“分辨率和演示”部分可以自定义屏幕外观的各个方面。

分辨率 (Resolution) 部分

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

属性 描述
Fullscreen Mode 选择全屏模式。这定义了启动时的默认窗口模式。这会设置启动时的默认窗口模式。
Fullscreen Window 应用程序窗口将填充设备的全屏原生分辨率。为了填充全屏窗口,Unity 会对应用程序内容进行缩放。为了匹配输出设备的纵横比,Unity 可能会在渲染输出中添加黑边,这样内容就不会拉伸变形了。这一过程称为 letterboxing。在此模式下,导航栏始终处于隐藏状态。
Windowed 应用程序使用标准的非全屏可移动窗口。窗口的大小取决于应用程序的分辨率。在此模式中,默认情况下可以调整窗口大小。要禁用此选项,请禁用 Resizable Window。
Default is Native Resolution 启用此选项可使游戏使用目标机器上所用的默认分辨率。如果 Fullscreen Mode 设置为 Windowed,此选项不可用。
Use 32-bit Display Buffer 嵌入式 Linux 仅支持 32 位颜色缓冲区。
Disable Depth and Stencil 嵌入式 Linux 尚不支持此功能。
Render Over Native__ UI__(即用户界面,User Interface)让用户能够与您的应用程序进行交互。Unity 目前支持三种 UI 系统。更多信息
See in Glossary
仅当您希望强制应用程序在原生 iOS 或 Android UI 之上渲染时,才启用此选项。要使此设置生效,请将摄像机的 Clear 标志设置为使用 Alpha 值小于 1 的纯色。

启动画面 (Splash Image)

使用虚拟现实启动画面设置 (Virtual Reality Splash Image setting) 来为虚拟现实显示器选择一张自定义的启动画面。有关常见启动画面 (Splash Image) 设置的信息,请参阅 Splash Image Player 设置

其他设置 (Other Settings)

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

渲染

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

嵌入式 Linux 的渲染设置
嵌入式 Linux 的渲染设置
属性 描述
Color Space 选择要用于渲染的颜色空间:Gamma 或 Linear。请参阅 Linear rendering 概述以了解这两者之间的区别。
Gamma Gamma 颜色空间通常用于帧缓冲区格式的每通道限制为 8 位的旧硬件上的光照计算。即使当今的监视器是数字显示器,它们仍会采用伽马编码信号作为输入信号。
Linear 线性颜色空间渲染可提供更精确的结果。当您选择使用线性颜色空间时,Editor 默认使用 sRGB 采样。如果纹理 (Textures) 处于线性颜色空间,则需要使用线性颜色空间并为每个纹理禁用 sRGB 采样。
Force SRGB__ blit__“位块传输 (Bit Block Transfer)”的简写。blit 操作是将数据块从内存中的一个位置传输到另一个位置的过程。
See in Glossary
启用此选项可对线性颜色空间使用 Force SRGB blit。如果您的图形驱动程序不支持线性颜色空间,选择此选项会将线性颜色空间转换为 Gamma (SRGB) 颜色空间。
Auto Graphics API 启用此选项可在应用程序所运行的设备上使用最佳图形 API。禁用此选项可添加和删除支持的图形 API。
Multithreaded Rendering 启用此选项可使用多线程渲染。
Static Batching 启用此选项可使用静态批处理。
Static Batching Threshold 控制批处理时使用的最大顶点阈值。更多信息,请参阅 Sprite Batch Vertex Threshold
GPU Compute Skinning 启用此选项可使用 DX11/ES3 GPU 计算蒙皮,这样可以释放 CPU 资源。
Graphics Jobs 启用此选项可指示 Unity 将图形任务(渲染循环)卸载到在其他 CPU 核心上运行的工作线程。此功能旨在减少主线程上 Camera.Render 所花费的时间,该时间通常成为瓶颈。
Texture compression format 选择要用于项目中纹理的纹理压缩格式。选项包括 ETC、ETC2、ASTC、DXT 和 PVRTC。有关每种压缩格式的更多信息,请参阅 TextureImporterOverride
Normal Map Encoding 选择 Normal Quality 或 High Quality 来设置光照贴图编码。此设置影响光照贴图的编码方案和压缩格式。
Lightmap Streaming 启用此选项可根据需要仅加载光照贴图 Mipmap 以渲染当前游戏摄像机。此值适用于生成过程中的光照贴图纹理。注意:要使用此设置,必须启用 Texture Streaming Quality 设置。
Streaming Priority 设置光照贴图 Mipmap 串流优先级以解决资源冲突。这些值在生成时应用于光照贴图纹理。正数表示更高的优先级。有效值范围为 –128 到 127。
Frame Timing Stats 启用此选项可收集 CPU/GPU 帧时序统计信息。
OpenGL:Profiler GPU Recorders 使用 OpenGL 渲染时启用性能分析器记录器。
Virtual Texturing (Experimental) 指示是否启用虚拟纹理注意:需要重新启动 Unity Editor 才能使此设置生效。
Load/Store Action Debug Mode 突出显示可能导致移动平台上渲染问题的未定义像素。这会影响 Unity Editor 的 Game 视图,并且如果在 Build Settings 中选择了 Development Build,也会影响构建好的应用程序。请参阅 LoadStoreActionDebugModeSettings 以了解更多信息。
360 Stereo Capture 表明 Unity 是否能够捕捉立体 360 度图像和视频。启用后,Unity 会编译其他着色器变体以支持 360 度捕获(目前仅支持 Windows/macOS)。启用后,将在 Stereo RenderCubemap 调用期间添加 enable_360_capture 关键字。请注意,此关键字不会在 Stereo RenderCubemap 函数外部触发。更多信息,请参阅立体 360 度图像和视频捕获

Vulkan 设置

嵌入式 Linux 的 Vulkan Player 设置。
嵌入式 Linux 的 Vulkan Player 设置。
属性 描述
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 执行后是回收还是释放。

配置

使用此部分可指定嵌入式 Linux 平台的配置设置。

嵌入式 Linux 的配置设置
嵌入式 Linux 的配置设置
属性 描述
Scripting Backend 脚本后端确定 Unity 如何在应用程序中编译和执行 C# 代码。嵌入式 Linux 的默认脚本后端是 IL2CPP
API Compatibility Level 选择可以在项目中使用的 .NET API。此设置可能会影响与第三方库的兼容性。
.Net Standard 2.0 .NET Standard 2.0 兼容。生成更小的构建体,并具备全面的跨平台支持。
.Net Framework 4.x 兼容 .NET Framework 4(包括 .NET Standard 2.0 配置文件中的所有内容以及其他 API)。如果使用的库需访问 .NET Standard 2.0 中未包含的 API,请选择此选项。生成更大的构建体,且任何其他可用的 API 不一定在所有平台上都受支持。更多信息,请参阅引用其他类库程序集
C++ Compiler Configuration 选择在编译__ IL2CPP__种由 Unity 开发的脚本后端,可在为某些平台构建项目时替代 Mono。更多信息
See in Glossary
生成的代码时使用的 C++ 编译器配置。
Use incremental GC 启用此选项以使用增量式垃圾回收器,它会将垃圾收集工作分布在多个帧上,从而减少与垃圾回收相关的帧时长峰值。
Assembly Version Validation 这是 Editor 设置,在运行时不适用。
Player Data path 输入您想在系统中保存 .config 和日志文件的目录路径。还可以通过添加以下参数从播放器的命令行进行更改:-platform-hmi-player-data-path <pathname>
Enable Game Controllers 选中此设置后,将启用游戏控制器。如果不需要游戏控制器,可以禁用此选项,以帮助减少播放器启动时间。
CPU Configuration 设置播放器运行时的目标 CPU 配置。默认的核心数量为 0,但可以通过输入数字来增加该数量。每个 CPU 的选项为:DisabledHigh PerformanceLow Performance
Loading image 使用此设置可为加载屏幕选择自定义启动画面。
Active Input Handling 选择您希望如何处理来自用户的输入。
Input Manager (old) 使用默认输入窗口。
Input System (Preview) 使用较新的输入系统。输入系统会作为此版本的预览包提供。要尝试预览输入系统,请安装 InputSystem 包。
Both 并排使用两个系统。

着色器设置和着色器变体加载设置

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

嵌入式 Linux 的着色器设置
嵌入式 Linux 的着色器设置
属性 描述
Shader precision model 选择着色器中使用的采样器的默认精度。更多信息,请参阅 HLSL 数据类型
Strict shader variant matching 如果缺少着色器变体并在控制台中显示错误,请使用错误着色器。
Keep Loaded Shaders Alive 启用后,无法卸载着色器。更多信息,请参阅着色器加载
Default chunk size (MB) 设置 Unity 在所有平台构建的应用程序中存储的着色器变量压缩数据块的最大大小。默认值为 16。更多信息,请参阅着色器加载
Default chunk count 设置 Unity 在所有平台上保留在内存中的已解压缩块数的默认数量限制。默认值为 0,这意味着没有限制。
Override 启用此选项可覆盖此构建目标的默认块大小和默认块数。

脚本编译 (Script Compilation)

嵌入式 Linux 的脚本编译设置
嵌入式 Linux 的脚本编译设置
属性 描述
Scripting Define Symbols 设置自定义编译标志。

有关更多详细信息,请参阅平台相关的编译
其他编译器参数 向此列表添加条目,以将附加参数传递给 Roslyn 编译器。每个附加参数使用一个新条目。
要创建新条目,请点击 Add (+)。要删除条目,请点击 Remove-)。

添加完所有所需参数后,点击 Apply,以便在后续编译中包含这些附加参数。点击 Revert 可将此列表重置为最新应用的状态。
禁止常见警告 指示是否显示 C# 警告 CS0169CS0649
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 级别。

日志记录 (Logging)

选择您希望嵌入式 Linux 构建的日志类型。

  • 从可用选项中选择您的首选日志记录方法。

  • 根据所需的日志记录类型,选中与每种日志类型(Error、Assert、Warning、Log 和 Exception)对应的复选框。例如:

    • ScriptOnly - 仅在运行脚本时记录日志。
    • Full - 始终记录日志。
    • None - 从未记录任何日志。

旧版 (Legacy)

本节介绍旧版播放器设置。

属性 描述
Clamp BlendShape(已弃用) 启用此选项可在 SkinnedMeshRenderer 中限制混合形状权重的范围。
Upload Cleared Texture Data 这是一项旧功能,目前已无必要,因为它会占用带宽。默认情况下,启用此选项是为了进行调试。启用此设置会清除初始数据并自动将纹理从脚本上传到视频内存。

其他资源:

Set up your environment for Embedded Linux
嵌入式 Linux 开发