Есть ли способ добавить несколько функций для узла кнопки в Годо

Я пытаюсь добавить две разные функции для узла кнопки в Годо. Мне бы хотелось, чтобы при щелчке левой кнопкой мыши отображалось сообщение, а спрайт, к которому он прикреплен, исчезал при щелчке правой кнопкой мыши. Есть ли способ сделать это в gdscript?

1 ответ

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

Я не уверен, что вы просто добавили кнопку в качестве области, которая реагирует на нажатие. Если это так, вы также можете добавить Area2D (или 3d) и форму столкновения к вашему спрайту. С помощью формы столкновения вы можете связать сигнал "input_event" узла Area2D со скриптом Sprite (или любым другим скриптом, который вы используете в этой сцене). Самый простой способ связать Сигнал - через ленту Сигнала в нижней левой части редактора.

Редактор автоматически создает новую функцию, и вы можете кодировать любое поведение, какое захотите:

func _on_Area2D_input_event( viewport, event, shape_idx ):    
    if event.is_action('left_click'):
        print("Left click message")
    elif event.is_action('right_click'):
        self.hide() # hides the node which owns the script...

Прежде чем вы сможете использовать функцию is_action, вы должны определить 'left_click' и 'right_click' для карты ввода в настройках редактора. В целом, всегда полезно использовать карту ввода вместо жесткого кодирования всех клавиш и кнопок.

Надеюсь, это поможет.

С наилучшими пожеланиями и счастливого кодирования.

Другие вопросы по тегам