Shortcut
Успадковує: Resource < RefCounted < Object
Ярлик для в'язального введення.
Опис
Комбінації клавіш (також відомі як гарячі клавіші) – це контейнери ресурсів InputEvent. Вони зазвичай використовуються для взаємодії з елементом Control з InputEvent.
Одна комбінація клавіш може містити кілька ресурсів InputEvent, що дозволяє запускати одну дію з кількома різними вхідними даними.
Приклад: Захоплення комбінації клавіш Ctrl + S за допомогою ресурсу Shortcut:
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("Зберегти комбінацію клавіш натиснуто!")
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("Зберегти комбінацію клавіш натиснуто!");
GetViewport().SetInputAsHandled();
}
}
}
Властивості
|
Методи
get_as_text() const |
|
has_valid_event() const |
|
matches_event(event: InputEvent) const |
Описи властивостей
InputEvent array.
Зазвичай використовується InputEvent InputEventKey, хоча він може бути будь-яким InputEvent, включаючи InputEventAction.
Описи методів
Повертаємо перше значення ярлика InputEvent як String.
bool has_valid_event() const 🔗
Повертає, чи містить events дійсну InputEvent.
bool matches_event(event: InputEvent) const 🔗
Повертає, чи будь-яка InputEvent у events дорівнює event. Це використовує InputEvent.is_match() для порівняння подій.