Выборы
Данная функция позволяет предоставить пользователю несколько вариантов выбора и перенаправить выполнение сценария в зависимости от того, какой выбор делает пользователь.
Используйте команды @choice
, за которыми следует список выборов и (необязательно) путь goto
, чтобы добавить варианты из сценариев Naninovel:
; Вывести текст, затем сразу же показать варианты и остановите выполнение сценария.
Продолжить выполнение этого сценария или загрузить другой?[skipInput]
@choice "Продолжить со следующей строки"
@choice "Продолжить с указанной отметки" goto:.Labelname
@choice "Загрузить другой с начала" goto:AnotherScript
@choice "Загрузить другой с указанного отметки" goto:AnotherScript.LabelName
@stop
Значение параметра goto
– это путь для перемаршрутизации после того, как пользователь сделает соответствующий выбор. Он задается в следующем формате: имя скрипта.имя отметки. Если имя отметки опущено, то указанный сценарий будет воспроизведен с самого начала; если имя сценария опущено, то ссылка будет сделана на метку в воспроизводимом в данный момент сценарии:
; Загружает и начинает воспроизводить сценарий Naninovel с именем `Script001` с самого начала
goto:Script001
; То же самое, что и выше, но начинает воспроизводить с отметки `AfterStorm`
goto:Script001.AfterStorm
; Переводит воспроизведение на отметку `Epilogue` в воспроизводимом в данный момент сценарии
goto:.Epilogue
Если параметр goto
не указан, выполнение текущего сценария продолжится со следующей строки.
Акторы обработчика выбора используются для обработки команд @choice
. Вы можете добавлять, редактировать и удалять обработчики выборов с помощью диспетчера выборов, доступного через контекстное меню Naninovel -> Resources -> Choice Handlers
.
Поведение обработчиков выборов можно настроить с помощью контекстного меню Naninovel -> Configuration -> Choice Handlers
; доступные параметры см. в руководстве по конфигурации.
Кнопки выбора
Команда @choice
принимает опциональный параметр button
, указывающий путь (относительно папки "Resources") к пользовательскому префабу, представляющей объект варианта выбора.
@choice handler:ButtonArea button:MapButtons/Home pos:-300,-300 goto:.HomeScene
– здесь мы используем обработчик выбора, поддерживающий позиционирование, чтобы представить интересующую нас точку на импровизированной карте, где параметр button
указывает на префаб, состоящий из кнопки, наложенной поверх изображения. Префаб хранится здесь: Assets/Resources/MapButtons/Home.prefab
.
Чтобы создать сборную кнопку выбора из шаблона, используйте контекстное меню ассетов Create -> Naninovel -> Choice Button
.
Не забывайте хранить пользовательские кнопки выбора в папке "Resources", иначе они не смогут загружаться по запросу.
Если параметр button
команды @choice
не задан, используется префаб кнопки по умолчанию.
Чтобы использовать другой текстовый компонент (например, TMPro) для текста выбора, используйте On Summary TextChanged
(событие Unity компонента кнопки выбора).
Списочный обработчик выбора
Обработчик списка используется по умолчанию. Он располагает кнопки выбора внутри горизонтальной панели компоновки и игнорирует параметр pos
команды @choice
.
Обработчик выбора по области
В отличие от списочного обработчика, областной не навязывает какой-либо конкретный макет и позволяет вручную устанавливать позиции добавленных кнопок выбора с помощью параметра pos
. Например, вот один из способов создания интерактивной карты с командами выбора и обработчиком областей:
# Map
@back Map
@hidePrinter
@choice handler:ButtonArea button:MapButtons/Home pos:-300,-300 goto:.HomeScene
@choice handler:ButtonArea button:MapButtons/Shop pos:300,200 goto:.ShopScene
@stop
# HomeScene
@back Home
Home, sweet home!
@goto .Map
# ShopScene
@back Shop
Don't forget about cucumbers!
@goto .Map
Добавление пользовательских обработчиков выбора
Вы можете добавить пользовательские обработчики выбора на основе встроенных шаблонов или создать новые обработчики с нуля. Например, давайте настроим встроенный шаблон ButtonArea
.
Используйте контекстное меню ассетов Create -> Naninovel -> Choice Handler -> ButtonArea
, чтобы создать префаб обработчика кнопки на за пределами пакета Naninovel, например, в папке Assets/ChoiceHandlers
.
Отредактируйте обработчик: измените шрифт, текстуры, добавьте анимацию и т.д. Дополнительные сведения о доступных инструментах редактирования пользовательского интерфейса см. в документации Unity.
Сделайте обработчик доступным для ресурсов движка с помощью графического менеджера обработчиков выбора, к которому можно обратиться через контекстное меню редактора Naninovel -> Resources -> Choice Handlers
. Добавьте новую запись с помощью кнопки +
(плюс), введите ID актора (может отличаться от имени префаба) и дважды щелкните запись, чтобы открыть настройки актора. Перетащите префаб обработчика в поле Resource
.
Теперь вы можете использовать новый обработчик выбора, указав его ID в параметре handler
команд @choice
.
@choice "Текст выбора" handler:MyNewHandler
Кроме того, можно создать обработчик выбора с нуля, вручную реализовав интерфейс IChoiceHandlerActor
. См. руководство по реализации пользовательских акторов для получения дополнительной информации.