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

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

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

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

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

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

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

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

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

Подключение сигналов к функции¶
Узлы дерева испускают сигнал когда что-то происходит. Godot использует сигналы повсеместно. Простым примером является кнопка которая при нажатии излучает сигнал "pressed".
Для этого нужно выбрать узел и открыть вкладку Сигналы. Это позволит увидеть имеющиеся сигналы. Когда они отобразятся, присоедините сигнал "pressed":

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

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

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

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

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

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