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.
Checking the stable version of the documentation...
Shortcut
繼承: Resource < RefCounted < Object
用於綁定輸入的快捷鍵。
說明
Shortcuts (also known as hotkeys) are containers of InputEvent resources. They are commonly used to interact with a Control element from an InputEvent.
One shortcut can contain multiple InputEvent resources, making it possible to trigger one action with multiple different inputs.
Example: Capture the Ctrl + S shortcut using a Shortcut resource:
extends Node
var save_shortcut = Shortcut.new()
func _ready():
var key_event = InputEventKey.new()
key_event.keycode = KEY_S
key_event.ctrl_pressed = true
key_event.command_or_control_autoremap = true # Swaps Ctrl for Command on Mac.
save_shortcut.events = [key_event]
func _input(event):
if save_shortcut.matches_event(event) and event.is_pressed() and not event.is_echo():
print("Save shortcut pressed!")
get_viewport().set_input_as_handled()
using Godot;
public partial class MyNode : Node
{
private readonly Shortcut _saveShortcut = new Shortcut();
public override void _Ready()
{
InputEventKey keyEvent = new InputEventKey
{
Keycode = Key.S,
CtrlPressed = true,
CommandOrControlAutoremap = true, // Swaps Ctrl for Command on Mac.
};
_saveShortcut.Events = [keyEvent];
}
public override void _Input(InputEvent @event)
{
if (@event is InputEventKey keyEvent &&
_saveShortcut.MatchesEvent(@event) &&
keyEvent.Pressed && !keyEvent.Echo)
{
GD.Print("Save shortcut pressed!");
GetViewport().SetInputAsHandled();
}
}
}
屬性
|
方法
get_as_text() const |
|
has_valid_event() const |
|
matches_event(event: InputEvent) const |
屬性說明
快捷鍵的 InputEvent 陣列。
通常使用的 InputEvent 是 InputEventKey,儘管也可以是任何 InputEvent,包括 InputEventAction。
方法說明
返回該快捷鍵的第一個有效 InputEvent 的 String 形式。
bool has_valid_event() const 🔗
返回 events 是否包含有效的 InputEvent。
bool matches_event(event: InputEvent) const 🔗
Returns whether any InputEvent in events equals event. This uses InputEvent.is_match() to compare events.