包含此页的版本:
不含此页的版本:
在嵌入式 Linux 播放器上,Unity 使用 SDL2 来处理键盘、鼠标和控制器输入,以与播放器窗口进行交互。根据使用的图形 API,它需要 SDL 动态加载libEGL和libGLESv2对于 OpenGL ES,或libvulkan对于用户空间的 Vulkan。
尽管此设置假定您使用的是 Weston(参考 Wayland 服务器),但您可以对另一个合成器使用相同的设置,并稍作修改。
这假设您正在运行一个 Wayland 合成器 (Weston),它将 Wayland 套接字导出到环境变量XDG_RUNTIME_DIR链接到。
若要在桌面 shell 上部署项目,请执行以下作:
XDG_RUNTIME_DIR设置为正确的目录。如果没有,则运行export XDG_RUNTIME_DIR=<dir>使用正确的目录 (/run/user/1000/是 Weston 安装的默认值)。您可以使用 IVI-shell 扩展部署您的项目,这是 Weston 的替代 shell 扩展。
设置 Unity Player 需要与环境变量一起使用的 IVI Surface IDUNITY_IVI_SURFACE_IDS.如果未设置此设置,则 Unity Player 使用 ID4711对于新创建的图面,向上(例如,Unity Display 1 将使用 4711,Unity Display 2 将使用 4712 等)。
注意:环境变量需要一个以逗号分隔的 ID 列表。例如export UNITY_IVI_SURFACE_IDS=100,200,300 uses ID 100对于 Unity Display 1,200用于 Unity Display 2 等。
如果仅使用单个显示输出,则单个 ID 就足够了。例如,导出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 Player 出现在屏幕上。
默认情况下,Unity 会创建与物理显示器大小相同的表面。如果要使用物理显示器以外的表面,例如将多个表面渲染到一个屏幕,请使用UNITY_IVI_EXPORT_DISPLAYS作为环境变量。
例如,使用export UNITY_IVI_EXPORT_DISPLAYS=1024x768@60,1920x1080@60Unity 对 Unity Display 1 使用表面大小 1024x768,对 Unity Display 2 使用 1920x1080 的表面大小。
您可以省略@60并使用export UNITY_IVI_EXPORT_DISPLAYS=1024x768,1920x1080因为@60自动假定。