中EN
概念页

输入系统

Godot Input

更新于 2026-10-16 约 1 分钟Godot输入InputMapInputEvent手柄

Godot 用 InputEvent 统一键鼠触手柄事件,经视口与控件冒泡;推荐 InputMap 把物理键映射为动作名,便于多键绑定与运行时重绑。

原理

  • 平台 DisplayServer 采集 → 引擎派发:_input → 控件 GUI → _unhandled_input 等(具体顺序见官方 InputEvent 文)。
  • InputMap:项目设置中定义 jump/move_left 等动作,代码用 Input.is_action_pressed("jump")。
  • 可合成/回放 InputEvent(手势、自动化测试、回放)。

应用

  • 玩法逻辑只认动作名;设置菜单改映射。
  • UI 焦点与玩法输入冲突时:控件先消费,剩余进 _unhandled_input;或临时切换输入模式。

取舍

  • 硬编码键码快但不便本地化与手柄;InputMap 略多配置、换绑成本低。
  • UE 对照:InputMap ≈ Enhanced Input 的 Action+Mapping 简化版;Godot 无内建同等「触发器/修饰符图」,复杂手感需自建或插件。

参见

  1. Godot 官方文档(离线 HTML,stable) Godot 4.7/stable
  2. Godot 官方文档(离线 HTML,stable) Godot 4.7/stable
  3. Godot 官方文档(离线 HTML,stable) Godot 4.7/stable
  4. Godot 官方文档(离线 HTML,stable) Godot 4.7/stable
  5. docs.godotengine.org/en/stable/tutorials/inputs/inputevent.html
  6. docs.godotengine.org/en/stable/tutorials/inputs/index.html

相关页面

游戏开发引擎输入系统Game Engine HID System多数引擎不直接使用「原始」HID 输入,而是先加工(死区、滤波)使游戏内行为平滑直观,并在 HID 与游戏之间加至少一层间接(如按键映射表把原始按钮翻译成逻辑游戏动作)。GEA 列出引擎输入系统的典型需求并逐一讲解实现:死区、模拟信号滤波、按下/松开事件、组合键与序列手势、多设备多玩家、跨平台抽象、输入重映射、上下文相关控制与输入禁用。(卷 I 9.5–9.6 节)游戏开发人机接口设备Human Interface Devices人机接口设备 (HID) 是玩家向游戏提供输入、游戏向玩家提供反馈的硬件:手柄、键鼠、摇杆、Wii 遥控器、方向盘、跳舞毯、吉他等。GEA 从三个层面介绍它们:游戏如何与设备通信(轮询、中断、无线协议),设备提供哪几类输入,以及设备能输出哪些反馈。引擎如何加工这些原始输入见 引擎输入系统。(卷 I 9.1–9.4 节)游戏开发 · UE5增强输入Enhanced Input增强输入 (Enhanced Input) 是 UE5 默认启用的输入插件,把输入拆成四层:输入动作 (Input Action) 表示“玩家想做什么”,输入映射上下文 (Input Mapping Context) 规定“哪些按键在什么情境下触发它”,输入修饰器 (Input Modifier) 预处理原始值,输入触发器 (Input Trigger) 判定是否触发。上下文可在运行时按优先级增删,从而用数据资产而非代码处理情境切换、按键冲突与改键。游戏开发 · GodotGodot UI 与 ControlGodot UI & ControlsControl 是 GUI 基类,与 Node2D 同属 CanvasItem。布局优先用容器(Box/Grid/Margin 等)而非手算坐标;主题与类型变体统一皮肤。游戏开发 · Godot节点与场景Nodes & ScenesGodot 把游戏抽象成「场景树」:节点是最小积木,场景是可复用的节点树蓝图;场景可嵌套实例化,同时扮演其他引擎中 Prefab 与关卡的角色。

被这些页面引用1 篇

输入关键词开始搜索

滚轮或双指缩放 · 拖动平移 · 双击放大 / 还原