InputMap

继承: Object

管理所有InputEventAction的单例。

描述

管理可以从项目设置菜单Project>Project Settings>Input Map或使用add_action()action_add_event()在代码中创建/修改的所有InputEventAction。参见Item.OnInput()

方法


方法说明

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读取输入/*设置。


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.2) 🔗

使用可配置的deadzoneInputMap添加一个空操作。

然后可以使用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_matchfalse,则忽略InputEventKeyInputEventMouseButton事件的其他输入修饰符,以及InputEventJoypadMotion事件的方向。


Array[StringName] get_actions() 🔗

返回InputMap中所有操作的数组。


bool has_action(action: StringName) const 🔗

如果InputMap具有具有给定名称的注册操作,则返回true


void load_from_project_settings() 🔗

清除InputMap中的所有InputEventAction并从ProjectSettings重新加载它。