Есть ли способ добавить несколько функций для узла кнопки в Годо
Я пытаюсь добавить две разные функции для узла кнопки в Годо. Мне бы хотелось, чтобы при щелчке левой кнопкой мыши отображалось сообщение, а спрайт, к которому он прикреплен, исчезал при щелчке правой кнопкой мыши. Есть ли способ сделать это в 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' для карты ввода в настройках редактора. В целом, всегда полезно использовать карту ввода вместо жесткого кодирования всех клавиш и кнопок.
Надеюсь, это поможет.
С наилучшими пожеланиями и счастливого кодирования.