部署您的项目
在嵌入式 Linux 播放器上,Unity 使用 SDL2 处理键盘、鼠标和游戏手柄输入,以与播放器窗口进行交互。根据使用的图形 API,它需要 SDL 从用户空间动态加载 libEGL 和 libGLESv2(用于 OpenGL ES)或 libvulkan(用于 Vulkan)。
为 Wayland 设置
虽然此设置假定您正在使用 weston(参考 Wayland 服务器),但您可以使用略微修改的相同设置来使用另一个合成器。
先决条件
这假设您正在运行 Wayland 合成器(weston),它在环境变量 XDG_RUNTIME_DIR 所链接到的目录中导出 Wayland 套接字。
在桌面 Shell 上设置
要将您的项目部署到桌面 Shell 上
- 验证环境变量
XDG_RUNTIME_DIR是否设置为正确的目录。如果不是,则运行export XDG_RUNTIME_DIR=/run/user/1000/以及正确的目录(/run/user/1000/是 weston 安装的默认目录)。 - 运行 Unity 播放器。
在 IVI-shell 扩展上设置
Note: This section applies to only 2020.3 version of the Unity Editor.
您可以使用 IVI-shell 扩展部署您的项目,IVI-shell 扩展是 weston 的替代 Shell 扩展。
使用环境变量
UNITY_IVI_SURFACE_IDS设置 Unity 播放器应使用的 IVI 表面 ID。如果未设置,Unity 播放器将为新创建的表面使用 ID4711及以上(例如,Unity 显示 1 将使用 4711,Unity 显示 2 将使用 4712,依此类推)。Note: The environment variable expects a comma-separated list of IDs. For example,
export UNITY_IVI_SURFACE_IDS=100,200,300 uses ID100for Unity Display 1,200for Unity Display 2, and so on.如果您只使用单个显示输出,则单个 ID 就足够了。例如,
export UNITY_IVI_SURFACE_IDS=100。验证环境变量
XDG_RUNTIME_DIR是否设置为正确的目录。如果未设置,则运行export XDG_RUNTIME_DIR=<dir>以及正确的目录(/run/user/1000/是 weston 安装的默认目录)。运行 Unity 播放器。
使用以下步骤为 Unity 设置 IVI 表面(例如,将
weston设置为fullscreen map表面)。创建 IVI 层。
LayerManagerControl create layer 0 <display-width> <display-height>在屏幕上添加层。
LayerManagerControl set screen 0 render order 0在层上添加 Unity 播放器表面。
LayerManagerControl set layer 0 render order <surface-id>添加表面源区域。
LayerManagerControl set surface <surface-id> source region 0 0 <display-width> <display-height>添加表面目标区域。
LayerManagerControl set surface <surface-id> destination region 0 0 <display-width> <display-height>添加层可见性。
LayerManagerControl set layer 0 visibility 1添加表面可见性。
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 会自动假定。