部署您的项目

在嵌入式 Linux 播放器上,Unity 使用 SDL2 处理键盘、鼠标和游戏手柄输入,以与播放器窗口进行交互。根据使用的图形 API,它需要 SDL 从用户空间动态加载 libEGLlibGLESv2(用于 OpenGL ES)或 libvulkan(用于 Vulkan)。

Wayland 设置

虽然此设置假定您正在使用 weston(参考 Wayland 服务器),但您可以使用略微修改的相同设置来使用另一个合成器。

先决条件

这假设您正在运行 Wayland 合成器(weston),它在环境变量 XDG_RUNTIME_DIR 所链接到的目录中导出 Wayland 套接字。

在桌面 Shell 上设置

要将您的项目部署到桌面 Shell 上

  1. 验证环境变量 XDG_RUNTIME_DIR 是否设置为正确的目录。如果不是,则运行 export XDG_RUNTIME_DIR=/run/user/1000/ 以及正确的目录(/run/user/1000/ 是 weston 安装的默认目录)。
  2. 运行 Unity 播放器。

在 IVI-shell 扩展上设置

Note: This section applies to only 2020.3 version of the Unity Editor.

您可以使用 IVI-shell 扩展部署您的项目,IVI-shell 扩展是 weston 的替代 Shell 扩展。

  1. 使用环境变量 UNITY_IVI_SURFACE_IDS 设置 Unity 播放器应使用的 IVI 表面 ID。如果未设置,Unity 播放器将为新创建的表面使用 ID 4711 及以上(例如,Unity 显示 1 将使用 4711,Unity 显示 2 将使用 4712,依此类推)。

  2. Note: The environment variable expects a comma-separated list of IDs. For example, export UNITY_IVI_SURFACE_IDS=100,200,300 uses ID 100 for Unity Display 1, 200 for Unity Display 2, and so on.

  3. 如果您只使用单个显示输出,则单个 ID 就足够了。例如,export UNITY_IVI_SURFACE_IDS=100

  4. 验证环境变量 XDG_RUNTIME_DIR 是否设置为正确的目录。如果未设置,则运行 export XDG_RUNTIME_DIR=<dir> 以及正确的目录(/run/user/1000/ 是 weston 安装的默认目录)。

  5. 运行 Unity 播放器。

  6. 使用以下步骤为 Unity 设置 IVI 表面(例如,将 weston 设置为 fullscreen map 表面)。

    1. 创建 IVI 层。

      LayerManagerControl create layer 0 <display-width> <display-height>

    2. 在屏幕上添加层。

      LayerManagerControl set screen 0 render order 0

    3. 在层上添加 Unity 播放器表面。

      LayerManagerControl set layer 0 render order <surface-id>

    4. 添加表面源区域。

      LayerManagerControl set surface <surface-id> source region 0 0 <display-width> <display-height>

    5. 添加表面目标区域。

      LayerManagerControl set surface <surface-id> destination region 0 0 <display-width> <display-height>

    6. 添加层可见性。

      LayerManagerControl set layer 0 visibility 1

    7. 添加表面可见性。

      LayerManagerControl set surface <surface-id> visibility 1

Unity 播放器现在应该出现在屏幕上。

其他信息

默认情况下,Unity 创建与物理显示屏大小相同的表面。如果您想要使用除了物理显示屏之外的表面,例如将多个表面渲染到一个屏幕,请使用 UNITY_IVI_EXPORT_DISPLAYS 作为环境变量。

例如,使用设置 export UNITY_IVI_EXPORT_DISPLAYS=1024x768@60,1920x1080@60,Unity 将为 Unity 显示 1 使用 1024x768 的表面大小,为 Unity 显示 2 使用 1920x1080 的表面大小。

您可以省略 @60 并使用 export UNITY_IVI_EXPORT_DISPLAYS=1024x768,1920x1080,因为 @60 会自动假定。