Найти тему

🔖Небольшой отзыв по работе с Dialogue System for Unity, пока память свежа


Когда-то давно я купил бандл с ассетами разными за бесценок, внутри которого среди прочих был вот этот вот Dialogue System For Unity. Послужной список впечатляет, в игры, использующие этот ассет попал даже Disco Elysium. Плюс встроенная система квестов.

Недавно я воткнул данную систему диалогов в свой проект в уже созданную мной архитектуру. Ассет - это звезда смерти, в нем есть очень многое, даже слишком много. Моя оценка по внедрению в хорошую (как мне кажется) архитектуру - 7/10.

Ассет и вправду классный. На нем буквально можно сделать игру целиком. Не только диалоги, но и квесты, есть. В диалогах поддерживаются разные варианты триггеров, по триггеру можно запускать диалоги, можно с условиями, можно также выполнять какие-то действия по по триггерам. Это все сделано при помощи скриптового языка, внутрь которого погружаться не нужно. Что-то вроде визуального программирования. В общем все круто, мощно, но не идеально, даже когда кодовая база проекта хорошая.

1. Интеграция получилась костыльной. Многие ассеты в ассетсторе рассчитаны на "закинуть префаб на сцену и все работает". Тут также. Есть некоторая гибкость, но недостаточная. Дело в том, что мой UI (окна) создаются внутри контейнеров, которые я заготовил. Например открывая окно Dialogue, я ожидаю, что найдется префаб ScreenDialogue, создастся объект и положится в контейнер Screens и проинициализируется. С Dialogue System for Unity такое не канает. Максимум, что можно - указать свой канвас для создания окна диалога. Вот я его сбоку и присобачил. Открывается внутреннее окно ScreenDialogueFake (пустое), а поверх появляется уже экран из ассета. Криво, зато работает.

2. Чему я удивился, так это невозможности менять один и тот же триггер под разные состояния объекта. Например, я хочу чтобы в одном состоянии триггер запустил диалог 1, а в другом - диалог 2. Возможно, я не полностью разобрался. Там есть еще своя система сохранений, но туда даже лезть страшно, ибо если делаешь кроссплатформ, то процесс сохранения может работать по-разному на каждой платформе, и страшно завязываться на ассет, который непонятно, поддерживает ли нужную платформу, в каком виде и насколько легко перейти от локального сохранения на серверное. Отдалился от темы пункта. Триггеры - не очень гибкие.

В общем, ассет однозначно стоит своих денег, с ним можно много всякого наворотить. Сейчас он по скидке, но, как я и сказал бывает в бандлах подешевле попадается. Рекомендую ли я его? Да, если в бандле брать может пригодиться. Или если делаете игру с диалогами. Но лучше в бандле, он просто может вам не пригодиться за большие деньги. А вот если на "вдруг".. Ну вы поняли.

Хорошего вечера!
🔖Небольшой отзыв по работе с Dialogue System for Unity, пока память свежа  Когда-то давно я купил бандл с ассетами разными за бесценок, внутри которого среди прочих был вот этот вот Dialogue System
2 минуты