InputMap
继承: Object
管理所有 InputEventAction 的单例。
描述
管理所有的 InputEventAction,可以通过项目设置菜单项目 > 项目设置 > 输入映射或在代码中用 add_action 和 action_add_event 创建/修改。请参阅 Node._input。
教程
方法
void | action_add_event(action: StringName, event: InputEvent) |
void | action_erase_event(action: StringName, event: InputEvent) |
void | action_erase_events(action: StringName) |
action_get_deadzone(action: StringName) | |
action_get_events(action: StringName) | |
action_has_event(action: StringName, event: InputEvent) | |
void | action_set_deadzone(action: StringName, deadzone: float) |
void | add_action(action: StringName, deadzone: float = 0.5) |
void | erase_action(action: StringName) |
event_is_action(event: InputEvent, action: StringName, exact_match: bool = false) const | |
has_action(action: StringName) const | |
void |
方法说明
void action_add_event(action: StringName, event: InputEvent) 🔗
给某个动作添加一个 InputEvent。这个 InputEvent 将触发这个动作。
void action_erase_event(action: StringName, event: InputEvent) 🔗
从某个动作中删除一个 InputEvent。
void action_erase_events(action: StringName) 🔗
从某个动作中删除所有事件。
float action_get_deadzone(action: StringName) 🔗
返回该操作的死区值。
Array[InputEvent] action_get_events(action: StringName) 🔗
返回与给定动作关联的 InputEvent 的数组。
注意:在编辑器中使用时(例如在工具脚本或 EditorPlugin 中使用),这个方法返回的是编辑器动作对应的事件。如果你想要在编辑器中访问你的项目的输入绑定,请读取 ProjectSettings 的 input/*
设置。
bool action_has_event(action: StringName, event: InputEvent) 🔗
如果该动作有给定的 InputEvent 与之相关,则返回 true
。
void action_set_deadzone(action: StringName, deadzone: float) 🔗
为该动作设置死区值。
void add_action(action: StringName, deadzone: float = 0.5) 🔗
在 InputMap 上添加空的动作,死区可使用 deadzone
配置。
然后可以用 action_add_event 给这个动作添加 InputEvent。
void erase_action(action: StringName) 🔗
从 InputMap 中删除一个动作。
bool event_is_action(event: InputEvent, action: StringName, exact_match: bool = false) const 🔗
如果给定的事件是现有动作的一部分,返回 true
。如果给定的 InputEvent 没有被按下,这个方法会忽略键盘(为了正确地检测释放)。如果你不想要这种行为,请参阅 action_has_event。
如果 exact_match
是 false
,它会忽略 InputEventKey 和 InputEventMouseButton 事件的额外输入修饰键,以及 InputEventJoypadMotion 事件的方向。
Array[StringName] get_actions() 🔗
返回 InputMap 中所有动作的数组。
bool has_action(action: StringName) const 🔗
如果 InputMap 有一个给定名称的注册动作,返回 true
。
void load_from_project_settings() 🔗
清除 InputMap 中的所有 InputEventAction,并从 ProjectSettings 项目设置中重新加载它。