Как я могу расширить кнопку Godot, чтобы различать события щелчка левой кнопкой мыши и события щелчка правой кнопкой мыши?

Я создал кнопку, используя встроенный класс Button, и установил маску кнопки на BUTTON_MASK_LEFT | BUTTON_MASK_RIGHT. Теперь и левый, и правый щелчок вызывают излучение сигнала «нажатие», но мне нужен способ узнать, щелкнул ли пользователь левой или правой кнопкой мыши.


person Dave    schedule 07.02.2021    source источник


Ответы (1)


Расширьте класс Button, а также создавайте и испускайте настраиваемые сигналы при нажатии левой или правой кнопки мыши на кнопке.

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")
person Dave    schedule 07.02.2021