您可以启用以下可选功能来提高应用程序的性能。
启动嵌入式 Linux 播放器时,将显示一个单独的加载屏幕(在我们的参考系统上,通常会在 200 毫秒内出现),其中包含在 Player Settings 窗口中配置的 2D 图像。初始场景内容仍然可用,只是它会在加载屏幕的后方加载。
嵌入式 Linux 支持在安装 Unity Player 的设备上进行二进制着色器缓存,以优化启动时间。缓存是在加载着色器后在运行时创建的。当此缓存写入临时文件夹时:[TEMP]/[COMPANY_NAME]/[PROJECT_NAME]/UnityShaderCache/,因此可以在重新启动系统时将其擦除。
要在系统重新启动时使用着色器缓存,请按照以下步骤将缓存复制到播放器数据中:
[TEMP]/[COMPANY_NAME]/[PROJECT_NAME]/UnityShaderCache/ 复制到 [PATH_TO_PLAYER]/Data/UnityShaderCache/。注意:
嵌入式 Linux 支持在安装 Unity Player 的设备上进行二进制 Vulkan 管线缓存,以优化启动时间。使用 Vulkan 管线时,会在运行时创建二进制 Vulkan 管线缓存。当此缓存写入临时 [TEMP]/[COMPANY_NAME]/[PROJECT_NAME]/vulkan_pso_cache.bin 文件时,可以在重新启动系统时将其擦除。
要在系统重新启动时使用管线缓存,请按照以下步骤将缓存复制到播放器数据中:
[TEMP]/[COMPANY_NAME]/[PROJECT_NAME]/vulkan_pso_cache.bin 文件复制到 [PATH_TO_PLAYER]/Data。注意:
启动时间记录指的是应用程序启动所花费的时长。它通常用作系统安全和监管要求的关键指标。
嵌入式 Linux 中的启动时间日志包括自应用程序启动以来的持续时间或总时间(以毫秒为单位)。有两种类型的启动时间日志:
要从 C# 添加启动计时日志,请使用:
HmiPlatform.LogStartupTiming("log tag");
结果将显示在以下 Player.log 行中:
[TIMING::STARTUP] log tag: Real: xxx ms | User: yyy ms
它包含自播放器开始时间以来的日志标签、挂钟时间 (xxx) 和 CPU 时间 (yyy)(以毫秒为单位)。
您可以使用 #if UNITY_EMBEDDED_LINUX_API ... #endif 保护代码。
注意:使用与 Time 命令相同的术语来区分实际时间与CPU 时间。更多信息,请参阅 Linux 核心手册。
[TIMING::STARTUP] Initial probing done: Real: 19 ms | User: 11 ms
[TIMING::STARTUP] SDL Initialized: Real: 64 ms | User: 54 ms
[TIMING::STARTUP] Scripting runtime loaded: Real: 97 ms | User: 86 ms
[TIMING::STARTUP] Plugins loaded: Real: 97 ms | User: 87 ms
[TIMING::STARTUP] Engine initialized (nogfx): Real: 104 ms | User: 94 ms
[TIMING::STARTUP] Player Prefs loaded: Real: 104 ms | User: 94 ms
[TIMING::STARTUP] Screen initialized: Real: 139 ms | User: 112 ms
[TIMING::STARTUP] Engine initialized (gfx): Real: 187 ms | User: 161 ms
[TIMING::STARTUP] Gfx initialized: Real: 190 ms | User: 163 ms
[TIMING::STARTUP] Input initialized: Real: 190 ms | User: 163 ms
[TIMING::STARTUP] SPLASH - Begin: Real: 190 ms | User: 164 ms
[TIMING::STARTUP] SPLASH - Primary scene assets loaded (async): Real: 2197 ms | User: 1670 ms
[TIMING::STARTUP] SPLASH - All engine initial states established: Real: 2197 ms | User: 1670 ms
使用脚本 API 从自定义事件输出
[TIMING::STARTUP] HELLO!!: Real: 2198 ms | User: 1671 ms
在 boot.config 输出中指定 platform-hmi-quit-after-frame 时,日志中将出现以下内容,直至帧数 X。其中,X 是为引导配置值提供的数字。
[TIMING::STARTUP] Frame 1 rendered: Real: 2209 ms | User: 1687 ms
[TIMING::STARTUP] Frame 2 rendered: Real: 2210 ms | User: 1692 ms
要在 Wayland 中运行时启用 EVDEV SDL2 输入驱动程序,请使用 -platform-embedded-linux-wayland-enable-evdev-input 参数启动播放器。也可以将其作为 platform-embedded-linux-wayland-enable-evdev-input=1 添加到位于 Data/boot.config 的配置文件中。
在同时支持 X11 和 Wayland 窗口系统的系统中,可以通过将环境变量设置为 SDL_VIDEODRIVER=wayland 来强制 Unity Player 使用 Wayland。
可从命令行启动 Unity Embedded Linux Player,并传递参数来更改 Player 的执行方式。
注意:所有命令行参数都优先于 Unity Editor 和 boot.config 设置。
| CLI 参数 | 描述 |
|---|---|
-log-startup-times-and-quit |
(已弃用)在渲染第一帧后退出播放器。 |
-platform-hmi-force-srgb-blit |
更改强制的 srgb-blit 设置。更多信息,请参阅 Player Settings > Rendering > Color Space。 |
-platform-hmi-quit-after-frame |
启用日志记录。请参阅 Player Settings > Configuration > Logging。 |
-platform-hmi-log-startup-times |
启用日志记录。请参阅 Player Settings > Configuration > Logging。 |
-platform-hmi-single-gl-context |
禁用 GLES 的上下文共享。注意:参数会禁用多显示器功能。 |
-platform-hmi-cpu-configuration <configuration> |
为播放器指定 CPU 配置。此参数需要一个字符串,包含字母 H(高性能核心)、L(低性能核心)和/或 D(禁用核心)的组合。例如,在 4 核以上 CPU 上,DHLL 表示禁用第一个核心,将第二个核心标记为 “高性能”,将第三个和第四个核心标记为 “低性能”。请参阅 Player Settings > Configuration > CPU 配置。 |
-platform-hmi-player-data-path |
输入您想在系统中保存 .config 和日志文件的目录路径。请参阅 Player Settings > Configuration > Player Data 路径。 |
-platform-hmi-force-vsync-count [C] |
每帧之间允许经过的垂直同步数。其中,将其设置为 0 会完全禁用垂直同步,设置为 –1 则会使用在 QualitySettings 中设定的值。 |
-platform-embedded-linux-enable-gamepadinput |
更改游戏控制器设置。请参阅 Player Settings > Configuration > Enable Game Controllers。 |
-platform-embedded-linux-offscreen-video |
将播放器配置为使用 SDL2 的屏幕外渲染驱动程序。这对于模拟和创建渲染服务器很有帮助。所有渲染都是屏幕外渲染,但仍然会经过 GPU 加速。注意:使用此功能时,可以通过设置 Application.targetFrameRate 来限制 CPU/GPU 使用。 |
-platform-embedded-linux-wayland-enable-evdev-input |
在 Wayland 中运行时启用 EVDEV SDL2 输入驱动程序。更多信息,请参阅 使用 Wayland 进行 EVDEV 输入处理。 |