Unity Bolt: #1. Введение

​Совсем недавно Bolt стал бесплатен. Помимо этого вижу довольно большой спрос на это дело, особенно со стороны геймдизайнеров. Bolt может дать возможность людям создавать небольшие прототипы совсем без кода.

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

Цикл статей

  1. Unity Bolt: #1. Введение
  2. Платформер — движение, анимация, рейкасты

​Туториалы можно скачать бесплатно с Гитхаба. Каждый туториал будет отдельной папкой в проекте. Конкретно этот туториал будет лежать в директории Assets/Tutorials/01 — Intro.

Оглавление

Установка

​Для начала нужно установить плагин. Открываем в редакторе Asset Store: Window -> Asset Store (Ctrl + 9). Там находим Bolt и импортируем в проект.

​В проекте появится директория Install Bolt. Нас интересуют файлы Bolt_1_4_12_NET3 и Bolt_1_4_12_NET4. В зависимости от ваших настроек и выбранной версии .NET импортируйте нужный файл. Я всегда выставляю максимальную версию .NET (сейчас это 4.0), поэтому импортирую Bolt_1_4_12_NET4. После импорта сразу появится окно настроек.

​В настройках наименований лучше выбрать Programmer Naming.

​В следующих окнах оставляет всё как есть, Next -> Next -> Generate.

Начинаем работу с графом и узлами

​Создаём пустой GameObject. Будем в него складывать все объекты.

Добавим в него куб.​

​Выбираем объект и в инспекторе добавляем к нему компонент Flow Machine.

​После добавления создаём Macro по кнопке New и выбираем, куда сохранить. После этого нажимаем Edit Graph. Откроется новое окно. Я его всегда прибиваю в нижнюю панель, чтобы можно было удобно видеть в режиме игры и его тоже.

По умолчания сразу создаётся два узла: Start сработает один раз вначале, Update каждый кадр. Start нам пока не нужен, оставим только Update.​

Базовые типы узлов

Поворот

Для начала сделаем что-нибудь простое – заставим кубик вертеться. Добавим ноду, которая будет вращать куб по оси Y.​

​Если запустить, то можно будет увидеть, как всё работает. Значение паметров в узлах можно менять в Play Mode, после выхода они сохраняются.

Обработка нажатий клавиш и ветвление

​Поменяем поведение — сделаем, чтобы вращение было лишь по нажатию на клавишу. Для этого нужно добавить узел Input.GetKeyDown, а от него узел Branch, от которого пойдёт два ответвления (в зависимости от состояния — нажали или нет кнопку).

​И проверим, как оно работает.

​Как видно, при нажатии на Space выполнение идёт по ветке true, что меняет поворот у объекта.

Последовательность

Но нам, к примеру, хочется одновременно какие-то действие производит. Скажем, чтобы куб постоянно вертелся по одной оси, но по другой только по нажатию на клавишу. Для этого используем узел Sequence.​

​Проверим, что всё правильно настроили.

Физические силы

​Сделаем кое-что пореальней – попробуем поработать с физикой. Добавим на сцену объект Plane (правой кнопкой на Objects -> 3D Object -> Plane). Подвинем его в Scene View, чтоб он был под кубиком.

Затем выберем объект Cube в иерархии и в инспекторе добавим на него компонент Rigid Body.​

​Это позволит взаимодействовать с объектами с помощью физики. Теперь немного переделаем граф – вместо поворота добавим объекту импульс.

​Насладимся результатом. Теперь наш кубик может по нажатию на Space, помимо этого постоянно вертится вокруг оси.