如何扩展 Godot 的 Button 来区分左键单击和右键单击事件?

Dav*_*ave 2 gdscript godot

我使用内置 Button 类创建了一个按钮,并将按钮掩码设置为 BUTTON_MASK_LEFT | BUTTON_MASK_RIGHT。现在,左键单击和右键单击都会发出“按下”信号,但我需要一种方法来判断用户是使用鼠标左键还是右键单击。

Dav*_*ave 5

扩展 Button 类,并在左键单击或右键单击按钮时创建并发出自定义信号。

在《戈多4》中:

class_name EventButton
extends Button

signal left_click
signal right_click

func _ready():
    gui_input.connect(_on_Button_gui_input)

func _on_Button_gui_input(event):
    if event is InputEventMouseButton and event.pressed:
        match event.button_index:
            MOUSE_BUTTON_LEFT:
                left_click.emit()
            MOUSE_BUTTON_RIGHT:
                right_click.emit()
Run Code Online (Sandbox Code Playgroud)

在《戈多3》中:

class_name EventButton
extends Button

signal left_click
signal right_click

func _ready():
# warning-ignore:return_value_discarded
    connect("gui_input", self, "_on_Button_gui_input")

func _on_Button_gui_input(event):
    if event is InputEventMouseButton and event.pressed:
        match event.button_index:
            BUTTON_LEFT:
                emit_signal("left_click")
            BUTTON_RIGHT:
                emit_signal("right_click")
Run Code Online (Sandbox Code Playgroud)