Перейти к основному содержимому

Патчи

В патчах логика собирается из нод и проводов, а не пишется кодом. Берите патч, когда события уже не хватает.

Патч находится между событиями и скриптами:

  • События простые, но не умеют хранить значения и считать.
  • Скрипты умеют всё, но для них нужно писать код.

Попробуйте патч, как только захотите «…но только если счёт больше десяти» или «…каждый раз сдвигать чуть дальше».

Патч работает так же быстро, как код

Патч работает так же быстро, как код, написанный руками. В панели Код его можно в любой момент посмотреть в виде кода. Заодно это самый быстрый способ проверить, что граф делает то, что вы задумали.

Все ноды и их порты — в справочнике нод патчей: 203 ноды в 24 категориях.

Соберите патч​

  1. Откройте Редактор патчей на левой панели. Там показан граф сцены.
  2. Нажмите + Добавить ноду и выберите ноду из группы События. С неё начинается граф.
  3. Добавьте ноду, которая что-то делает, например меняет компонент.
  4. Протяните провод от выхода-пульса ноды события ко входу-пульсу другой ноды.
  5. Откройте панель Код и проверьте граф в виде кода.

Виды нод​

ВидКак узнатьЧто делает
Событиетолько выходы, один из них — пульсзапускает граф: при запуске, по нажатию, в каждом кадре
Эффектпульс на входе и пульс на выходечто-то делает, по порядку
Управлениеразветвляет или повторяет пульсветвление, шлюз, повтор, перебор, один раз, задержка
Данныепульсов нет совсемдаёт значение: число, сумму, поле компонента

Провод пульса задаёт порядок, в котором всё происходит. Чтобы прочитать последовательность, идите по нему от ноды события. Провода данных только передают значения, порядка у них нет.

Порты и провода​

У каждого порта есть тип: число, логическое значение, строка, вектор, цвет или объект. Порты разных типов не соединяются. Так многие ошибки видны ещё до запуска.

Порт вектора раскрывается в x, y и z. Можно подключить провод к одному из них, а два других ввести вручную.

Вход без провода берёт значение, которое вы ввели в ноду. Поэтому подключайте провода только к тому, что меняется.

Выберите, с каким объектом работает нода​

Нодам компонентов, например «получить трансформацию» или «задать материал», нужно знать, с каким объектом работать.

  • Оставьте объект пустым — нода будет работать с этим объектом, к которому прикреплён патч.
  • Укажите объект — нода будет работать с ним.

Работать с ними проще благодаря двум правилам:

  • Ноды чтения не ломаются. Если прочитать компонент, которого у объекта нет, нода ничего не вернёт, а граф продолжит работать.
  • Ноды записи меняют только то, что вы заполнили. Всё остальное остаётся как было.
Порты поворота — в градусах

Как и всё остальное, что вы видите в редакторе. В скриптах поворот в радианах, поэтому пересчитывайте его, когда передаёте между патчем и скриптом.

Что есть в меню нод​

ГруппаЧто там
События30 точек старта: запуск, кадр, нажатие, клавиши, столкновения, трекинг
Компонентычтение и изменение любого компонента
Математика, Векторы, Логика, Строкивычисления, сравнения, векторы и текст
Потокветвление, шлюз, повтор, перебор, один раз, задержка, последовательность
Состояниесчётчик, переключатель, таймер, сглаживание
Сущности, Жизненный циклнайти, создать, породить и удалить объекты
Физикаимпульсы, силы, скорость, raycast
Мультиплееротправка, получение, общее состояние, порождение объектов
Глобальные, Переменные, Сообщениязначения, общие с другими патчами и скриптами
Интерфейсчтение и изменение переменных карточки интерфейса
Функциивызов другого патча или скрипта

Используйте патч повторно​

Сохраните граф как патч в ассетах проекта, и его можно будет добавлять на другие холсты. Что получится, зависит от того, как вы его собрали:

Вы собралиВы получите
без нод входов и выходовповедение: добавили — и оно работает, провода не нужны
входы, выходы и вход-пульсшаг: выполняется, когда приходит пульс, после чего готовы выходы
входы и выходы, но без пульсафункцию: её выходы вычисляются там, где их читают

Разъёмы патча берутся из нод входов и выходов внутри него. Добавьте такую ноду, и разъём появится везде, где используется патч. Когда вы меняете патч, всё, что его использует, сразу обновляется.

У патча-функции нет своего объекта

Внутри функции нет «этого объекта», поэтому ноды объектов и компонентов там не работают. Используйте функции для данных, математики и логики. А работу со сценой делайте в патче, который вызывает функцию.

Патчи умеют вызывать и скрипты. Обычно так делают то, для чего нет подходящей ноды.

Сохраняйте значения между запусками​

Сохранить значение можно тремя способами. Они отличаются тем, кому это значение видно:

Группа нодКому доступно
Переменныенодам этого патча
Глобальныевсем патчам, скриптам и событиям проекта
Сообщениявсем, кто их слушает; это разовое уведомление, отправленное по имени

Глобальные значения бывают двух видов:

  • глобальные значения проекта сохраняются, когда посетитель переходит между пространствами;
  • глобальные значения пространства в каждом пространстве начинаются заново.

Имена переменных, глобальных значений и сообщений вводятся текстом, а не подключаются проводом.

Напишите строчку JavaScript​

Две ноды принимают JavaScript напрямую:

  • Выражение (expression) возвращает значение.
  • Действие (action) выполняет инструкции.

Внутри них доступно всё, что доступно скрипту.

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

Если что-то не работает​

Откройте панель Код. Если с графом что-то не так, причина будет видна там. Две частые причины — петля в проводах данных и ошибка в JavaScript в ноде Действие.

Сломанный патч не останавливает сцену. Остальные патчи продолжают работать.


Дальше: Игровое управление — как дать людям ходить по сцене.