在叠加层中显示 UI
本页说明如何将 UI 渲染到纹理,然后将其显示为叠加层。
以下说明假设你已经有一个想要显示在叠加层中的 UI。有关创建 UI 的信息,请参阅 UI 部分。
Note
当游戏未在 VR 设备中运行时,你无法看到叠加层。这是因为叠加层是由 VR 设备本身创建的,而不是其他硬件。
1. 创建渲染目标纹理
在资产视图中,单击添加资产,然后选择 Texture > Render target。

Game Studio 会向项目资产中添加一个**渲染目标(render target)**纹理。

在接下来的步骤中,我们会将 UI 渲染到这个纹理,然后在叠加层中显示它。
2. 添加 VR 叠加层
在资产视图(默认位于底部窗格)中,双击**图形合成器(Graphics Compositor)**资产。

图形合成器编辑器随即打开。有关图形合成器的更多信息,请参阅图形合成器页面。
在图形合成器编辑器中,选择**前向渲染器(forward renderer)**节点。

在属性网格(默认位于右侧)中,展开 VR Settings。

在 Overlays 旁边,单击
(添加)。Game Studio 会向列表中添加一个新的叠加层。

在 Texture 旁边,单击
(选择资产)。**选择资产(Select an asset)**窗口随即打开。

选择你创建的渲染纹理,然后单击确定。
3. 设置 UI 渲染特性
在图形合成器编辑器左侧的 Render Features 下,选择 UIRenderFeature。

在属性网格中,确保选中 SimpleGroupToRenderStageSelector。

在 Render Stage 下,确保选中 UIRenderStage。

这样可以确保 UI 在 UI 渲染阶段(render stage)中渲染,我们将在下一步中使用它。
4. 设置渲染器
要显示叠加层,你至少需要两个渲染器:
- 一个用于渲染主摄像机
- 一个用于将 UI 渲染到叠加层
本页描述了从零开始实现这一点的最简单方法,即使用两个摄像机和两个渲染器。根据你的渲染管线,你可能需要创建不同的设置。
Warning
这些说明涉及删除游戏入口点的现有渲染器。你可能需要备份项目,以便之后恢复渲染管线。
在图形合成器编辑器中,选择 Entry points 节点。

在右侧的属性网格中,Game renderer 旁边,单击
(替换)并选择 None,以删除现有的渲染器。
在 Game rendererer 旁边,单击
(替换)并选择 Camera Renderer。
目前,所有渲染器都必须拥有摄像机,或者是拥有摄像机的渲染器的子级。即使对于不一定要使用摄像机的渲染器(例如渲染 UI 的单阶段渲染器)也是如此。
因此,在这些说明中,我们将添加一个带有摄像机的游戏渲染器,然后将这两个渲染器作为该渲染器的子级。这样可以确保两个渲染器都有一个带摄像机的父级。
在 Camera 旁边,单击
(替换)并选择你的主游戏摄像机。
在 Child 旁边,单击
(替换)并选择 SceneRendererCollection。
在 Children 旁边,单击
(添加)并选择 RenderTextureSceneRenderer。
在 Child 旁边,单击
(替换)并选择 SingleStageRenderer。
在 Render Stage 旁边,单击
(替换)并选择 UIRenderStage。这就是渲染 UI 的渲染器。
在 Render Texture 旁边,单击
(选择资产)。**选择资产(Select an asset)**窗口随即打开。
选择该渲染纹理,然后单击确定。

Game Studio 会将渲染纹理添加到渲染器中。
在 Game renderer 下,Children 旁边,单击
(添加)并选择 Forward renderer。
你的游戏现在已准备好在 VR 设备中将 UI 渲染到叠加层。
VR 模板
有关在 VR 游戏中实现 UI 叠加层的示例,请参阅 Stride 附带的 VR 模板。
