重新绑定输入 | hyperPad Documentation
Logo
Documentation交互重新绑定输入
交互

重新绑定输入

Published 2026年9月30日
重新绑定输入

使用 Rebind Input,让玩家在游戏过程中更改控制方式。你也可以读取当前选择,或恢复你创作时设置的控制方式。

游戏中的连接会保持不变。例如,玩家可以更改 Jump 的控制器按钮,而现有的 Jump 行为仍会保留其移动设置。

前往 Interaction > Controls 查找此行为。

属性

Rebind Input 属性设为 Player 1、Binding Jump 和 Operation Listen。

这些设置会监听 Player 1 的 Jump 绑定,并等待替换输入。

属性默认值功能
Player1要更改或读取其绑定的玩家。请与目标的玩家编号一致。
Input Behavior未选择选择 Map Control Inputs、Controller Event,或用于指定某个输入的 Keyboard Event 或 Mouse Event。Cancel 和 Reset All 无需目标。
Binding第一行映射,或事件的单个输入按易读名称选择映射行。具体事件只有一个绑定。不同的行会将控制器、键盘和鼠标的替代输入分开保留。
OperationListen选择捕获、取消、读取还是重置绑定。

可以重新绑定特定的 Keyboard Event 按键。Any 按键和 On Sequence 不会指定单个绑定。Mouse Event 可以指定点击、移动或某个滚动方向。Any 滚动不会指定要重新绑定的具体方向。

Map Control Inputs 使用正数玩家编号。若要重新绑定使用 Player 0 创建的 Controller Event,也要在此处使用 Player 0。此全控制器事件不会显示在生成的按玩家划分的 Controls 表格中。

操作与事件触发时机

操作效果底部事件连接何时运行
Listen等待兼容的输入,并将其保存到所选绑定。捕获成功、操作被取消,或因目标不可用而无法开始时运行。每次提示更新时不会运行。
Cancel停止当前的监听操作。已保存的绑定保持不变。无需目标。立即运行。监听行为也会以取消状态结束。
Reset移除所选绑定已保存的覆盖设置,并恢复其创作时设置的控制方式。重置尝试后立即运行。
Reset All移除此项目中该玩家所有已保存的绑定覆盖设置。无需目标。立即运行。无需目标的 Reset All 会报告成功。
Get Binding读取所选绑定当前已保存或创作时设置的控制方式。读取后立即运行。

再次启动 Listen 会替换当前的监听操作。请确保 UI 中一次只启用一个重新绑定请求。

哪些控制方式可以互相替换?

捕获仅限于所选绑定所属的输入系列和类型。

所选绑定兼容的捕获输入
控制器按钮或扳机其他控制器按钮或扳机。
控制器移动摇杆或 D-pad。
键盘按钮一个键盘按键。
键盘移动四个不同的键盘按键,依次对应 Up、Right、Down、Left。
鼠标按钮或滚动方向鼠标按钮或滚动方向。
鼠标移动相对鼠标移动。

对于键盘移动,请根据 prompt 的提示逐个收集按键。如果按下的按键已分配给另一个方向,监听会停留在当前步骤。只有完整的按键组被接受后,四个按键才会保存。

不兼容的输入不会结束监听。若要为同一操作提供键盘和控制器支持,请在 Map Control Inputs 中创建不同的行。重新绑定会更改现有行,不会为游戏添加另一种设备选项。

输出

输出内容
control已保存或已查询的控制标识符,例如 buttonA、keyboard:44 或 mouse:1。Listen 成功、Get Binding 或 Reset 时会读取该值。Reset All 成功时可能没有可返回的单个控制方式。
labelcontrol 的易读标签。控制器正面按钮会显示其位置。键盘移动绑定会显示实际选定的四个按键。
prompt当前的捕获提示。监听过程中提示会变化,例如提示输入下一个移动按键。
progress已完成的捕获步骤数。初始值为 0;键盘移动会依次变为 1、2 和 3,完成时为 4。其他成功的捕获完成时为 1。取消 Listen 时返回 0。
success成功捕获、读取或重置绑定时为 true。Reset All 无需目标即可返回 true。false 表示捕获已取消,或请求的绑定不可用。
cancelled监听被取消时为 true。目标不可用时,success 和 cancelled 均为 false。
deviceID提供成功捕获输入的设备。控制器会返回其会话 ID;键盘和鼠标分别返回 keyboard 和 mouse。

如果希望 UI 显示下一步操作,请在监听过程中读取 prompt 和 progress。提示更新不会运行底部事件连接。你可以通过单独的 UI 更新行为读取这些输出。

捕获输出描述的是一次捕获尝试。Get Binding、Reset 和 Reset All 不会启动新的捕获。单独的 Cancel 操作会报告 success 和 cancelled;不要将其其他输出用作新的捕获结果。操作完成后,使用 Get Binding 显示当前控制方式。

取消捕获

玩家可以按 Escape 或控制器的 Menu 按钮取消。监听期间,这些控制会专用于取消。右侧正面按钮仍可用于绑定。自定义 UI 也应提供 Cancel 操作。

如果开始监听时某个控制仍处于按住状态,请先松开,再次按下。捕获到的输入在恢复到中立状态前不会传递给游戏。

生成的 Controls 覆盖层在控制器捕获过程中提供 15 秒的备用超时机制,以应对 Menu 按钮不可用或未确认的情况。Universal 也会对其控制器捕获服务应用此机制。自定义的原生 Rebind Input 流程应提供 Cancel,而不要依赖超时。键盘和鼠标捕获不使用此控制器超时机制。

在生成的覆盖层中,选择设备标签,然后点击某个操作旁的 Change。聚焦的提示会显示当前绑定、要按下的下一个输入,以及 Cancel。覆盖层也会处理用于启动捕获的鼠标点击,以及点击 Cancel 按钮的操作。重新绑定鼠标时,建议使用此 UI。本文的自定义连接示例选择了控制器绑定。

连接指南:更改 Jump 并更新其标签

这是一个示例。首先,在 Map Control Inputs 中创建一行控制器输入,为其指定易读名称 Jump,并将其连接到游戏的跳跃输入。

Rebind Input 连接指南:精确的行为设置、执行连接和数据拖线。

  1. 创建一个 Change 按钮 Object 和一个 Jump Binding 标签 Object。
  2. 为 Change 按钮添加 Started Touching。将其底部事件连接到 Rebind Input。
  3. 将此 Rebind Input 设置为 Listen、Player 1、你的 Map Control Inputs 行为,以及 Jump 控制器行。
  4. 将 Listen 连接到第二个 Rebind Input。将此 Rebind Input 设置为 Get Binding,并使用相同的 Player、Input Behavior 和 Binding。
  5. 将 Get Binding 连接到 Set Label。选择 Jump Binding 作为 Object A。
  6. 将 Get Binding 实例的绿色 label 输出拖到 Set Label 的 Text 属性中。
  7. 创建一个 Cancel 按钮 Object。将其 Started Touching 行为连接到另一个设置为 Cancel 的 Rebind Input。此 Cancel 行为无需目标。

在 Rebind Input 设置为 Get Binding 的实例中,选择 label 输出并拖入 Set Label 的 Text 字段。

使用设置为 Get Binding 的实例所提供的 label 输出。Listen 结束后,它会读取已保存的选择。

无论捕获成功还是被取消,Listen 都会结束。随后 Get Binding 会读取当前选择,因此如果玩家取消,标签会显示之前的控制方式。你也可以在 UI 首次打开时执行 Get Binding,以显示初始选择。

已保存的选择

覆盖设置按当前项目、玩家、行为和绑定保存。更改某个控制器行不会影响键盘和鼠标替代输入。Reset All 会影响该玩家在整个项目中已保存的绑定,包括其他场景中的创作控制设置。它不会重置其他玩家的选择,也不会更改控制器分配。

在场景加载之前,可以重新绑定项目中定义的控制。如果游戏通过另一个行为的输出决定控制所对应的玩家或输入来源,则要等该实时行为解析出这些值后,控制才可用。

已保存的选择由玩家运行时保存。它们不会标识某个特定的控制器硬件,也不保证能在不同设备或玩家应用之间转移。使用 Assign Controller 为玩家选择已连接的设备。请通过平台自身的设置连接或配对实体设备。

相关内容