部署您的项目
在嵌入式 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 ID
100
for Unity Display 1,200
for 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
会自动假定。