加入输入与震动¶
未登记的手柄可按配置自动分配到空玩家席位,手柄轴自动分配带有阈值过滤,避免摇杆漂移噪声抢占席位。
已登记手柄切换 active_player_index 时使用独立的 active_player_axis_threshold,避免轻微漂移反复切换活跃玩家。
手动 set_assignment() 会受 max_players 约束,并会把同一物理设备从旧玩家席位移到新玩家席位。
需要多个 AI 虚拟席位时可继续使用 DeviceType.AI 与负数设备 ID。
本地多人大厅可以显式配置 join 输入模板,再把匹配事件交给 handle_join_input_event()。该接口只发出“某个设备请求加入”的通用信号,不决定队伍、角色、出生点或 UI 流程。
devices.configure_default_join_events(true, true)
devices.player_join_requested.connect(func(player_index: int, assignment: GFInputDeviceAssignment, _event: InputEvent) -> void:
print("join requested: ", player_index, assignment.device_type)
)
func _input(event: InputEvent) -> void:
devices.handle_join_input_event(event)
需要手柄反馈时,可以通过玩家席位转发震动请求,而不是在业务代码里散落 device id 查询: