Совсем недавно Bolt стал бесплатен. Помимо этого вижу довольно большой спрос на это дело, особенно со стороны геймдизайнеров. Bolt может дать возможность людям создавать небольшие прототипы совсем без кода.
Поэтому решил начать серию статей про этот инструмент для визуального программирования. В этой речь пойдёт про установку и небольшой пример работы.
Цикл статей
- Unity Bolt: #1. Введение
- Платформер — движение, анимация, рейкасты
Туториалы можно скачать бесплатно с Гитхаба. Каждый туториал будет отдельной папкой в проекте. Конкретно этот туториал будет лежать в директории 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, помимо этого постоянно вертится вокруг оси.