Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

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)

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

void

erase_action(action: StringName)

bool

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

String

get_action_description(action: StringName) const

Array[StringName]

get_actions()

bool

has_action(action: StringName) const

void

load_from_project_settings()


訊號

project_settings_loaded() 🔗

Emitted when the ProjectSettings InputMap has been loaded.


方法說明

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

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 事件的方向。


String get_action_description(action: StringName) const 🔗

Returns the human-readable description of the given action.


Array[StringName] get_actions() 🔗

返回 InputMap 中所有動作的陣列。


bool has_action(action: StringName) const 🔗

如果 InputMap 有一個給定名稱的註冊動作,返回 true


void load_from_project_settings() 🔗

清除 InputMap 中的所有 InputEventAction,並從 ProjectSettings 專案設定中重新載入它。