控制叠加层
使用生成的 Controls 覆盖层,让玩家选择控制器并更改按键绑定。你可以在编辑器中更改它的图形、字体、位置和颜色。
Controls Overlay 是用于更新此菜单的内部行为。模板会将它添加到菜单的行为树中。它不会显示在“添加行为”列表中。若要创建自己的输入操作,请使用 Controller Event。若要创建自定义绑定菜单,请使用 Rebind Input。
打开菜单
配置映射输入后,编辑器会添加一个可编辑的 Controls 覆盖层。使用 Load Overlay 打开它,然后选择生成的覆盖层。如果希望玩家更改控制时游戏暂停,请保持暂停设置开启。活动覆盖层仍然可以接收输入。
如果模板检测到启动菜单的按键可用,就会添加 Menu 和 Escape 快捷键。它还会为可识别的暂停覆盖层添加 Controls 项。如果游戏已使用 Menu 或 Escape,或者有自己的暂停流程,请为你想使用的 UI 添加 Load Overlay 连接。
选择生成的对象,即可更改菜单的图形、文本和布局。编辑器会用淡色轮廓显示隐藏的选项卡和监听元素。这些轮廓在运行游戏时不会出现。
选择 Controller Body,然后打开它的颜色选择器以更改色调。
玩家可以更改的内容
选择 Controller、Keyboard 或 Mouse,一次查看一种设备的绑定。每一行都会显示操作名称、当前控制方式和 Change。只会显示你为该设备创建的替代控制方式。空白选项卡会说明该设备尚未设置控制方式。
模板每页最多显示四行操作。如果所选设备的操作超过四个,就会显示 Previous 和 Next。未使用的行会保持隐藏。同一来源和操作名称的替代控制方式共用一个操作。同一设备类别中的第二个替代控制方式会使用另一行。
Controller 选项卡会显示分配给所选玩家的设备。如果可以选择其他已连接的控制器,或为尚未分配设备的玩家插槽分配控制器,就会显示箭头。Keyboard 和 Mouse 选项卡会显示各自的设备名称。
Controller 选项卡上的控制器图示会高亮显示所选绑定。按钮位于图示主体内。你可以用自己的 Graphic 替换图示。映射使用标准控制器位置,因此更换图示不会改变控制方式。
源图形为白色且背景透明。模板会应用炭灰色、灰色和薄荷绿的色调。更改对象的色调,使其符合你的游戏风格。
点击 Change 可打开专用的监听提示。提示会显示操作、当前绑定以及接下来需要按下的内容。Cancel 会保留之前的绑定并返回列表。监听期间,导航、设备分配和重置控件会保持隐藏。
在普通列表中,Reset selected 会恢复高亮显示的绑定。Reset all 会将所选玩家在整个项目中的绑定恢复为预设默认值。Done 会关闭覆盖层。
保留生成的连接
此教学示意图展示了生成的 Done 按钮的完整执行链。所有三个行为都属于名为 Controls: Done 的对象。这里只展示生成模板中的一个特定部分;菜单中的其他连接仍会保留。
- Started Touching 监听 Controls: Done 对象,并拦截它收到的触摸。
- 它底部的白色执行连接器会运行 Controls Overlay,其 Operation 为
Done。Object A 用于标识共用的 Controls Menu 锚点。 - Controls Overlay 底部的白色执行连接器会运行 Close Overlay。生成的关闭操作中,Resume All Scenes 处于关闭状态,Unload When Finished 处于开启状态。
Done 会在关闭操作运行前取消正在进行的输入捕获。自定义按钮时,请保留此顺序。计时器、控制器和键盘连接是同一模板中的独立部分。
操作
这些操作保存在生成的辅助行为中。通常,你只需自定义菜单对象,并保留这些辅助行为的连接。
| 操作 | 功能 |
|---|---|
Refresh | 更新标签、可见绑定行、捕获状态、分页信息和控制器高亮。生成的 Timer 每 0.2 秒运行一次,并立即启动。 |
NextPlayer, PreviousPlayer | 选择菜单绑定或控制器分配中显示的另一个玩家插槽。 |
NextController, PreviousController | 循环切换已连接的控制器,并将所选设备分配给所选玩家。 |
Navigate, NextSource | 在操作和设备选项卡之间移动选择项。 |
SelectSource | 选择 Controller、Keyboard 或 Mouse 选项卡。切换选项卡时会选中第一个操作。点击当前激活的选项卡会保留当前选择。 |
NextBinding, PreviousBinding | 选择下一个或上一个游戏输入。 |
NextPage, PreviousPage | 切换绑定表的页面。 |
SelectCell | 选择可见的操作行。生成的行会使用当前设备选项卡。 |
Rebind, RebindCell | 开始捕获所选的预设绑定。重新绑定之前,请先在 Map Control Inputs 中添加替代控制方式。 |
Cancel | 停止捕获并保留现有绑定。 |
Reset | 恢复所选的预设默认值。 |
ResetAll | 恢复所选玩家的所有已保存绑定。 |
Done | 取消捕获,然后允许已连接的 Close Overlay 操作运行。 |
Back | 取消正在进行的捕获并留在菜单中。如果当前没有捕获操作,则继续执行已连接的关闭操作。 |
对象引用和输入值
模板会将以下引用保存在辅助行为中。编辑其行为树时,请确保这些引用仍指向对应的对象。
| 引用或值 | 用途 |
|---|---|
| Layout Version | 生成的布局使用版本 3。现有的自定义覆盖层会保留其已保存的布局。 |
| Layout Size, Layout Objects | 设计画布的大小及属于该画布的对象。辅助行为会将整个组合居中并缩放,使标签和图形在不同屏幕上保持对齐。覆盖层打开时,会使用你保存的位置和缩放比例。没有这些值的覆盖层会保留原有位置。 |
| Source Tabs, Diagram Objects | 每个选项卡的标签和高亮引用,以及每种设备对应的可见图示对象。 |
| Normal Objects, Capture Objects | 用于在绑定列表和监听提示之间切换的可见性分组。 |
| Paging Objects, Reset Objects, Device Selector Objects | 仅在当前状态需要相应控件时显示的分组。Device Selector Objects 包含控制器选择器箭头及其标签。 |
| Capture Title, Binding, and Prompt Labels | 正在更改的操作、该操作的当前绑定,以及下一步捕获提示。 |
| Device Status, Empty State, and Source Caption Labels | 设备分配或设备说明、空选项卡提示,以及所选设备说明。 |
| Object A | 共用的 Controls Menu 锚点,用于保存此覆盖层实例的选择状态。 |
| Player Label, Controller Label | 显示所选玩家以及当前设备或已分配控制器的标签。 |
| Binding Label, Source Label, Selection Label | 用于显示所选操作和当前绑定的可选标签。 |
| Status Label, Page Label | 普通列表中的说明或结果,以及当前页码。 |
| Table Rows | 版本 3 的记录包含操作标签、一个绑定标签、背景、选择高亮和行的 Object ID。旧版模板保留其三列记录。 |
| Diagram Labels, Diagram Highlights | 标准控制器位置上的高亮所对应的 Object ID。旧版模板也可以提供操作标签。 |
| Row Index, Source | RebindCell 或 SelectCell 使用的可见行槽位和设备类别。Source current 表示使用当前选项卡。 |
| x, y, Navigation Step | 用于在操作和选项卡之间移动的方向值。使用键盘导航时,每次按键移动一步。 |
| Event Player | Controller Event 的输出,用于识别正在操作菜单的玩家。 |
输出
Controls Overlay 没有可拖动的数据输出。它会写入所引用的标签,并更新所选绑定或设备分配。它的白色执行输出会继续运行连接在该操作之后的行为。
配对与捕获
玩家通过平台支持的 Bluetooth、USB 或其他设置方式配对控制器。覆盖层会选择已连接的控制器。
Escape 或控制器的 Menu 按钮会取消捕获。模板也有一个 Cancel 按钮。如果所选控制器没有已确认的 Menu 控件,控制器捕获会在 15 秒后超时。键盘和鼠标捕获应使用 Cancel 或 Escape 取消。捕获到的输入在恢复中立状态前不会传递给游戏。
对于键盘移动,玩家需要按顺序按下四个不同的按键:上、右、下、左。菜单会显示已保存的按键。对于鼠标行,系统会根据预设输入的类型捕获鼠标按键、滚轮方向或移动。
设备分配仅适用于当前会话。绑定选择会按项目、玩家和预设绑定保存。已配对的手机控制器与实体控制器共用相同的绑定和玩家分配方式。有关配对信息,请参阅使用手机进行游戏。

