Что это: Модульная система для управления диалогами в игре. Разделена на независимые компоненты для гибкости и переиспользования.
Оглавление: см. список ссылок ниже.
Модульная система для управления диалогами в игре. Разделена на независимые компоненты для гибкости и переиспользования.
| Компонент | Описание |
|---|---|
| DialogueController | Основная логика управления диалогами |
| DialogueUI | Управление UI элементами |
| DialogueData | Структуры данных (Dialogue, Monolog, Sentence) |
Визуальный редактор на UI Toolkit (окно без обрезки полей справа).
- Открыть: кнопка Open Dialogue Editor в инспекторе
DialogueControllerили меню Neoxider → Tools → Dialogue → Open Dialogue Editor. - В окне: поле Controller (можно выбрать другой контроллер), кнопки Select In Scene и Docs.
- Левая панель — структура: Dialogues → Monologues → Sentences. Кнопки
+/−/↑/↓для добавления, удаления и перемещения. Выбор элемента — клик по строке. - Правая панель — детали выбранного: события (On Change Dialogue / Monolog / Sentence), поля (Character, Sprite, Text), блок Preview для реплики.
- События настраиваются no-code в окне или через код.
- Добавьте
DialogueControllerна GameObject - Добавьте
DialogueUI(можно на тот же объект) - Назначьте UI элементы в
DialogueUI - Заполните массив
dialoguesвDialogueController - Вызовите
StartDialogue(0)для запуска
// Запуск диалога
dialogueController.StartDialogue(0);
// Пропуск/переход
dialogueController.SkipOrNext();
// Перезапуск
dialogueController.RestartDialogue();
// Текущий контекст (для условий, аналитики, саунда)
Dialogue d = dialogueController.GetCurrentDialogue();
Monolog m = dialogueController.GetCurrentMonolog();
Sentence s = dialogueController.GetCurrentSentence();Отдельный модуль эффекта печатной машинки, который можно использовать независимо:
// Использование напрямую из кода
var typewriter = new TypewriterEffect(50f); // 50 символов/сек
await typewriter.PlayAsync("Привет!", text => myText.text = text);
// Или через компонент
typewriterComponent.Play("Привет!");