InputMap

继承: Object

管理所有 InputEventAction 的单例。

描述

管理所有的 InputEventAction,可以通过项目设置菜单项目 > 项目设置 > 输入映射或在代码中用 add_actionaction_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)

float

action_get_deadzone(action: StringName)

Array[InputEvent]

action_get_events(action: StringName)

bool

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)

bool

event_is_action(event: InputEvent, action: StringName, exact_match: bool = false) const

Array[StringName]

get_actions()

bool

has_action(action: StringName) const

void

load_from_project_settings()


方法说明

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 中使用),这个方法返回的是编辑器动作对应的事件。如果你想要在编辑器中访问你的项目的输入绑定,请读取 ProjectSettingsinput/* 设置。


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_matchfalse,它会忽略 InputEventKeyInputEventMouseButton 事件的额外输入修饰键,以及 InputEventJoypadMotion 事件的方向。


Array[StringName] get_actions() 🔗

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


bool has_action(action: StringName) const 🔗

如果 InputMap 有一个给定名称的注册动作,返回 true


void load_from_project_settings() 🔗

清除 InputMap 中的所有 InputEventAction,并从 ProjectSettings 项目设置中重新加载它。