Начало работы с Визуальным Программированием

Как и во всем остальном в Godot, мы отдаем предпочтение хорошему опыту, а не копированию или интеграции сторонних решений, которые могут не вписаться в текущий рабочий процесс. Это привело нас к написанию собственной версии того, как, по нашему мнению, эта функция будет лучше всего работать с движком.

В Godot Визуальное Программирование легко сочетается с обычными скриптами на вкладке Редактора

../../../_images/visual_script1.png

На самом деле Визуальное Программирование настолько хорошо интегрируется с Godot, что трудно поверить, что его добавили только в версии 3.0. Это происходит потому, что при редактировании остальные панели и док-станции Godot действуют как палитра, откуда можно перетаскивать на холст всевозможную информацию:

../../../_images/visual_script2.png

Создание скрипта

Создание скриптов работает так же, как и для других языками программирования: выберите любой узел в сцене и нажмите кнопку "Новый Скрипт" в верхнем правом углу панели Дерева Сцен:

../../../_images/visual_script3.png

После того, как меню откроется, необходимо выбрать тип "Визуальный Скрипт" из выпадающего списка. Расширение сценария должно быть ".vs" (сокращение для Visual Script!).

../../../_images/visual_script4.png

Наконец, откроется Редактор Скриптов, позволяющий начать редактирование Визуального Скрипта:

../../../_images/visual_script5.png

Добавление функции

В отличии от других реализаций визуального скриптинга, Визуальный Скриптинг в Godot в основном базируется на функциях. Это произошло потому что он использует тот же интерфейс для связи с движком как другие скриптовые движки. В Godot, интерфейс скриптинга универсален и все реализации соответствуют ему.

Функция отдельного холста с подключенными нодами.

Один скрипт может содержать множество функций, каждая из которых имеет свое полотно, что позволяет добиться большей организации.

Существует три основных способа добавления функций в скрипт:

Переопределение виртуальной функции

Большинство типов узлов и других типов объектов в Godot содержат виртуальные функции. Это функции, которые будут вызываться (запускать ваш код), когда что-то происходит, и их можно посмотреть в справочнике. Виртуальные функции отображаются при нажатии значка «Переопределить» на панели элементов:

../../../_images/visual_script6.png

В следующем примере, функция будет выполнена когда узел загрузится и добавится в запущенную сцену. Для этого, будет перегружен виртуальный метод _ready():

../../../_images/visual_script7.png

Наконец, канва функции появляется, указывая переопределение:

../../../_images/visual_script8.png

Так как некоторые функции ожидают ответа, они также добавят узел в который должен поступить ответ:

../../../_images/visual_script9.png

Подключение сигналов к функции

Узлы дерева испускают сигнал когда что-то происходит. Godot использует сигналы повсеместно. Простым примером является кнопка которая при нажатии излучает сигнал "pressed".

Для этого нужно выбрать узел и открыть вкладку Сигналы. Это позволит увидеть имеющиеся сигналы. Когда они отобразятся, присоедините сигнал "pressed":

../../../_images/visual_script10.png

Это откроет окно соединения. В этом окне вам нужно выбрать узел к которому будет подключен сигнал, и функцию которая его получит:

../../../_images/visual_script11.png

Если все сделано правильно, то в нашем скрипте будет создана новая функция и сигнал автоматически подключится к ней:

../../../_images/visual_script12.png

Создание функции вручную

Последний способ создания функций - вручную. В целом это не самая распространенная практика, к которой строит прибегать только в том случае, если вам это действительно нужно. Пользовательские функции запускаются если другой (или тот же) скрипт вызывает их вручную. Основными примерами использования являются разбиение более крупной функции на несколько управляемых фрагментов и повторное использование визуального кода.

Чтобы создать функцию вручную, нажмите большую кнопку "Плюс", и новая функция будет добавлена с именем по умолчанию:

../../../_images/visual_script13.png

Это позволит добавить новую функцию, которая может быть переименована просто двойным нажатием мышкой на ее имя:

../../../_images/visual_script14.png

Чтобы отредактировать "аргументы", которые может получать эта функция (значения, которые вы передаете ей при вызове), просто нажмите на узел Function и проверьте инспектор:

../../../_images/visual_script15.png

Подробнее об этом будет рассказано позже в этом документе.