分配控制器 | hyperPad Documentation
Logo
Documentation交互分配控制器
交互

分配控制器

Published 2026年9月30日
分配控制器

使用 Assign Controller 选择在游戏中由哪个控制器控制某位玩家。玩家 1 和玩家 2 可以都使用 Left Stick 和 Bottom Button,同时分别接收来自不同控制器的输入。

在 Interaction > Controls 中找到此行为。

属性

属性默认值作用
Player1要分配的玩家槽位。使用正数,或使用 0 取消分配所选控制器。
Controller ID空要分配的已连接控制器。将 Controller Event 或 Controller Status 中的 deviceID 拖入此处,或者从 Get Controllers 的 controllers 数组中的某条记录读取该值。

运行此行为前,请提供已连接控制器的 ID。Get Controllers 提供的是字典数组;它不会将 deviceID 作为单独的输出提供。

输入与事件连接

每次执行此行为时,都会尝试进行分配。无论 success 为 true 还是 false,其底部事件连接都会在尝试后运行。显示确认信息前,请先读取 success。

一个控制器一次只能属于一个玩家槽位。将控制器移到另一个槽位后,它会从原槽位移除。将控制器分配到已被占用的槽位时,原先分配到该槽位的控制器会被取消分配。

将控制器分配到它当前所在的槽位会成功,但不会产生新的分配变更。只有分配发生变化时,Controller Status 才会报告变更。

输出

输出包含的内容
success找到已连接的控制器并应用了所请求的分配时为 true。提供的控制器不可用时为 false。
deviceID你在本次分配尝试中提供的控制器 ID。
playerIndex你请求的玩家编号。0 表示你请求取消分配。请先检查 success,再将此值视为已确认的结果。

连接指南:为玩家 2 选择控制器

这是一个控制器选择界面的示例。它会选择固定的玩家槽位,而不是自动查找下一个玩家。

Assign Controller 连接指南:准确的行为设置、执行连接和数据拖线。

  1. 将 Controller Event 添加到玩家选择界面。
  2. 将 Player 设为 0,将 Control 设为 Bottom Button (A / ×),并将 Event 设为 Pressed。
  3. 将其底部事件连接到 Assign Controller。
  4. 将 Assign Controller 的 Player 设为 2。
  5. 将 Controller Event 的绿色 deviceID 输出拖到 Assign Controller 的 Controller ID 属性中。

选择 Controller Event 的 deviceID 输出,并将其连接到 Assign Controller 的 Controller ID 字段。

玩家按下底部面键时,该控制器就会分配给玩家 2。显示的符号可能因控制器品牌而异。

只有在界面正在为玩家 2 进行选择时,才使用此选择行为。每次匹配的按键都会尝试进行相同的分配。如果该槽位已有控制器,另一个控制器的按键操作会将其替换。要构建完整的多人游戏大厅,请围绕此示例添加自己的确认和选择流程。

将玩家选择与设备 ID 分开保存

新连接的控制器会从第一个空闲的正数玩家槽位开始分配。Assign Controller 可让游戏更改此自动分配结果。

分配仅在当前游戏会话中生效。deviceID 是会话标识符,因此将它保存下来供之后启动游戏时使用,并不能保留控制器的选择。

重新映射的选择会按项目、玩家和绑定分别保存。如果你为玩家 2 分配了替换控制器,玩家 2 已保存的按键选择仍会保留。此行为不会更改这些绑定。

你可以使用大于 1 和 2 的正数玩家编号。此行为不会设置玩家人数上限;可连接的实体控制器数量由平台限制。Assign Controller 使用已经连接的设备,不会执行蓝牙配对。

向已分配的玩家发送反馈

Vibrate 会使用当前分配。例如,将其 Player 设为 2,并将 Vibrate 设为 Controller,即可请求玩家 2 的控制器提供反馈。受支持且已配对的 iPhone 也会使用相同的玩家选择。

分配不同的控制器后,下一次振动会发送到该控制器。重新分配会停止之前控制器上正在进行的振动。

相关内容