mirror of
https://github.com/godotengine/godot.git
synced 2025-10-19 16:03:29 +00:00
C#: Fix Shortcut example
- Follow our code-style and conventions. - Match the GDScript example more closely. - Replace `set_events()` method with `events` property.
This commit is contained in:
parent
46c495ca21
commit
46bd73a4d0
1 changed files with 24 additions and 28 deletions
|
@ -16,8 +16,8 @@
|
||||||
var key_event = InputEventKey.new()
|
var key_event = InputEventKey.new()
|
||||||
key_event.keycode = KEY_S
|
key_event.keycode = KEY_S
|
||||||
key_event.ctrl_pressed = true
|
key_event.ctrl_pressed = true
|
||||||
key_event.command_or_control_autoremap = true # Swaps ctrl for Command on Mac.
|
key_event.command_or_control_autoremap = true # Swaps Ctrl for Command on Mac.
|
||||||
save_shortcut.set_events([key_event])
|
save_shortcut.events = [key_event]
|
||||||
|
|
||||||
func _input(event):
|
func _input(event):
|
||||||
if save_shortcut.matches_event(event) and event.is_pressed() and not event.is_echo():
|
if save_shortcut.matches_event(event) and event.is_pressed() and not event.is_echo():
|
||||||
|
@ -25,35 +25,31 @@
|
||||||
get_viewport().set_input_as_handled()
|
get_viewport().set_input_as_handled()
|
||||||
[/gdscript]
|
[/gdscript]
|
||||||
[csharp]
|
[csharp]
|
||||||
public partial class YourScriptName : Godot.Node
|
using Godot;
|
||||||
|
|
||||||
|
public partial class MyNode : Node
|
||||||
{
|
{
|
||||||
private Godot.Shortcut saveShortcut;
|
private readonly Shortcut _saveShortcut = new Shortcut();
|
||||||
|
|
||||||
public override void _Ready()
|
public override void _Ready()
|
||||||
{
|
{
|
||||||
// Enable input processing explicitly (optional for Node, but included for clarity)
|
InputEventKey keyEvent = new InputEventKey
|
||||||
SetProcessInput(true);
|
|
||||||
|
|
||||||
saveShortcut = new Godot.Shortcut();
|
|
||||||
|
|
||||||
Godot.InputEventKey keyEvent = new Godot.InputEventKey
|
|
||||||
{
|
{
|
||||||
Keycode = Godot.Key.S,
|
Keycode = Key.S,
|
||||||
CtrlPressed = true,
|
CtrlPressed = true,
|
||||||
CommandOrControlAutoremap = true
|
CommandOrControlAutoremap = true, // Swaps Ctrl for Command on Mac.
|
||||||
};
|
};
|
||||||
|
|
||||||
Godot.Collections.Array<Godot.InputEvent> events = new Godot.Collections.Array<Godot.InputEvent> { keyEvent };
|
_saveShortcut.Events = [keyEvent];
|
||||||
saveShortcut.SetEvents(events);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void _Input(Godot.InputEvent @event)
|
public override void _Input(InputEvent @event)
|
||||||
{
|
{
|
||||||
if (@event is Godot.InputEventKey keyEvent &&
|
if (@event is InputEventKey keyEvent &&
|
||||||
saveShortcut.MatchesEvent(@event) &&
|
_saveShortcut.MatchesEvent(@event) &&
|
||||||
keyEvent.Pressed && !keyEvent.Echo)
|
keyEvent.Pressed && !keyEvent.Echo)
|
||||||
{
|
{
|
||||||
Godot.GD.Print("Save shortcut pressed!");
|
GD.Print("Save shortcut pressed!");
|
||||||
GetViewport().SetInputAsHandled();
|
GetViewport().SetInputAsHandled();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue