Playmaker
PlayMaker – популярный визуальный сценарный инструмент Unity, специально разработанный для удобства работы пользователей, не являющихся программистами.
Имейте в виду, что в отличие от Bolt, где все C# API Naninovel доступны по умолчанию, PlayMaker требует создания специального класса C# для каждого действия. Это означает, что только ограниченное подмножество API движка доступно из коробки при использовании PlayMaker. Доступные пользовательские действия также могут нарушиться в случае изменения API Naninovel.
Установка
Установите PlayMaker, следуя инструкциям из официального руководства.
Скачайте и импортируйте пакет расширения PlayMaker.
Пользовательские действия Naninovel должны появиться в браузере действий PlayMaker в категории "Naninovel".
Использование
В следующем видео демонстрируется использование FSM PlayMaker (finite state machine) для инициализации движка Naninovel, предварительной загрузки и воспроизведения сценария.
События
Некоторые из основных событий Naninovel могут быть автоматически перенаправлены в FSM PlayMaker. Для этого создайте глобальное пользовательское событие с соответствующим именем и используйте его внутри FSM. Ниже приведены доступные имена событий:
Naninovel/Engine/OnInitialized
Naninovel/ScriptPlayer/OnPlay
Naninovel/ScriptPlayer/OnStop
Naninovel/StateManager/OnGameSaveStarted
Naninovel/StateManager/OnGameSaveFinished
Naninovel/StateManager/OnGameLoadStarted
Naninovel/StateManager/OnGameLoadFinished
Naninovel/TextPrinterManager/OnPrintTextStarted
Naninovel/TextPrinterManager/OnPrintTextFinished
Naninovel/LocalizationManager/OnLocaleChanged
Кроме того, можно транслировать пользовательские события PlayMaker из сценариев Naninovel с помощью команды @playmaker
:
@playmaker EventName
— вызовет глобальное пользовательское событие с именем "EventName" во всех активных FSM в сцене.
Команда также позволяет отправлять события в определенные FSM с помощью параметров fsm
и object
. Первый параметр позволяет указать имена FSM, которые должны принимать событие, например:
@playmaker EventName fsm:Fsm1,Fsm2
— вызовет событие с именем "EventName" для FSM с именами "Fsm1" и "Fsm2".
Когда параметр object
задан, событие будет отправлено только в те FSM, которые применяются к игровым объектам, имеющим соответствующие имена, например:
@playmaker EventName object:Obj1,Obj2
— вызовет событие с именем "EventName" для всех FSM, которые прикреплены к игровым объектам с именами "Obj1" и "Obj2".
Вы также можете объединить параметры fsm
и object
для дальнейшей фильтрации FSM, которые должны получить событие.
Глобальные переменные
В сценариях Naninovel можно получить доступ к глобальной переменной PlayMaker со следующими пользовательскими выражениями функций, доступными в пакете расширений:
GetPlayMakerGlobalVariable("variableName")
— возвращает переменную простого типа (int, float, строка, и т.д.) c именем "variableName"GetPlayMakerGlobalArray("variableName", arrayIndex)
— возвращает значение, хранящееся в индексе "arrayIndex" массива переменной с именем "variableName"
К примеру, у вас есть целое число "Score" и глобальные переменные PlayMaker булева массива "FinishedRoutes" – вы можете использовать их в сценариях Naninovel следующим образом:
Felix: My score is {GetPlayMakerGlobalVariable("Score")}.
@if GetPlayMakerGlobalArray("FinishedRoutes",2)
Third route (second array index) is completed.
@else
Not yet.
@endif