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 # Заменяет Ctrl на Command на 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, // Заменяет Ctrl на Command на 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 🔗
Возвращает, равен ли InputEvent в events этому event. Для сравнения событий используется InputEvent.is_match().