Shortcut
Hereda: Resource < RefCounted < Object
Un atajo para vincular la entrada.
Descripción
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();
}
}
}
Propiedades
|
Métodos
get_as_text() const |
|
has_valid_event() const |
|
matches_event(event: InputEvent) const |
Descripciones de Propiedades
El array de InputEvent del atajo.
Generalmente, el InputEvent utilizado es un InputEventKey, aunque puede ser cualquier InputEvent, incluyendo un InputEventAction.
Descripciones de Métodos
Devuelve el primer InputEvent válido del atajo como una String.
bool has_valid_event() const 🔗
Devuelve si events contiene un InputEvent que es válido.
bool matches_event(event: InputEvent) const 🔗
Devuelve si algún InputEvent en events es igual a event. Esto usa InputEvent.is_match() para comparar eventos.