Диалоги с ветвлениями
|
|
darkduelist | Дата: Среда, 12 Февраля 2014, 14:25 | Сообщение # 1 |
частый гость
Сейчас нет на сайте
| Добрый день! Что бы не изобретать велосипед, хочу узнать как вы делаете диалоги с ветвлениями? Я не прошу кода, его я и сам напишу... Мне бы понять принцип... П.С. Все что мне пришло в голову создать огромный case...
|
|
| |
-l33t-h4xx- | Дата: Среда, 12 Февраля 2014, 14:41 | Сообщение # 2 |
участник
Сейчас нет на сайте
| Я это делаю (не в Юнити, правда), привязывая к выбору варианта ответа функцию, которая очищает диалоговое окно от всех объектов (текста и кнопок) и рисует вместо них новые в зависимости от того, что пользователь выбирает. Каждый экран, создаваемый таким образом, описывается одной из структур данных, определённых где-то в стороне, чтобы их было легко редактировать.
Городить кейсы в любом случае не стоит.
Как правильно задавать вопросы
|
|
| |
Aevien | Дата: Среда, 12 Февраля 2014, 14:53 | Сообщение # 3 |
почти ветеран
Сейчас нет на сайте
| Можно сохранить в XMLах и загружать и обрабатывать
|
|
| |
castielblack | Дата: Среда, 12 Февраля 2014, 15:08 | Сообщение # 4 |
почетный гость
Сейчас нет на сайте
| Раньше надо было, там чувак бесплатно отдавал первые 2-3 дня очешуенную систему диалогов. Вот. А я успел
Знания : C#, Lua, C++, Unity, Dreemchest, DirectX 11 Выпущенные проекты : BuildAndRun, Match 3 Cubes
|
|
| |
darkduelist | Дата: Среда, 12 Февраля 2014, 15:21 | Сообщение # 5 |
частый гость
Сейчас нет на сайте
| Цитата -l33t-h4xx- ( ) Я это делаю (не в Юнити, правда), привязывая к выбору варианта ответа функцию, которая очищает диалоговое окно от всех объектов (текста и кнопок) и рисует вместо них новые в зависимости от того, что пользователь выбирает. Каждый экран, создаваемый таким образом, описывается одной из структур данных, определённых где-то в стороне, чтобы их было легко редактировать. И у тебя получается огромное количество функций в скрипте? Цитата Aevien ( ) Можно сохранить в XMLах и загружать и обрабатывать Текст хранить я буду в CSV...Добавлено (12.02.2014, 15:21) --------------------------------------------- castielblack, мне интересней самому сделать... Я лишь хочу услышать еще варианты, помимо того что сам накропал...
|
|
| |
KamiRonin | Дата: Среда, 12 Февраля 2014, 21:04 | Сообщение # 6 |
почти ветеран
Сейчас нет на сайте
| Цитата castielblack ( ) Вот. А я успел есть бесплатная и так
Цитата darkduelist ( ) мне интересней самому сделать... Я лишь хочу услышать еще варианты, помимо того что сам накропал... респект за такое желание
я как то писал систему диалогов в классах для себя.. исходники не сохранились (не могу найти ), но принцип был простой: 1. создавался пул объектов содержащих Лист класса в котором было: фраза; ID этого нода; список вариантов ответа (мог быть пустым - это значило что это не селективный нод диалога, а "обычный") в формате -- текст варианта, ID нода для перехода; ID следующего нода если не выбран никакой вариант или это обычный нод; имя говорящего (там была ссылка на другой класс, но это сейчас не важно). 2. обработчик нодов был очень простой - модель сама себя разруливает. 3. пул этих объектов сохранялся в префаб со всеми данными и потом спокойно использовался в работе сцены. время на забивание базы диалогов требовалось большое, загрузку из внешних данных я делать не стал, т.к. у меня было меньше 50 нодов всего. но думаю загрузку из чего удобно - сделать не было бы проблемой при загрузке уровня.
код вышел почти микроскопическим и система отрабатывала как часы.. я даже интерес тогда потерял к этому.. думал сложности будут!
как то так.
Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
Сообщение отредактировал KamiRonin - Среда, 12 Февраля 2014, 21:05 |
|
| |
darkduelist | Дата: Среда, 12 Февраля 2014, 22:23 | Сообщение # 7 |
частый гость
Сейчас нет на сайте
| Цитата KamiRonin ( ) респект за такое желание У меня плохо получается чужое прикручивать и переделывать...
KamiRonin, спасибо за подсказку
|
|
| |
nwsx | Дата: Четверг, 13 Февраля 2014, 01:28 | Сообщение # 8 |
постоянный участник
Сейчас нет на сайте
| Цитата castielblack ( ) Раньше надо было, там чувак бесплатно отдавал первые 2-3 дня очешуенную систему диалогов. Вот. есть там недочёт один, нету возможности задать условие доступности одного из ответов. например, в старом фалауте, наличие ответов зависело от характеристик игрока, пройденных квестов и различных событий. и нельзя вставлять переменные в эти самые ответы.
в этом ассете/плагине, такое можно сделать, разве что пихая в ответы игрока самопальные теги/спецсимволы, которые потом можно будет самостоятельно расковыривать : D (так я и сделаю йопта ахахахаха)
Westboro Dungeon Journey на Google Play
Сообщение отредактировал nwsx - Четверг, 13 Февраля 2014, 01:28 |
|
| |
darkduelist | Дата: Пятница, 14 Февраля 2014, 13:03 | Сообщение # 9 |
частый гость
Сейчас нет на сайте
| Цитата nwsx ( ) в этом ассете/плагине, такое можно сделать, разве что пихая в ответы игрока самопальные теги/спецсимволы, которые потом можно будет самостоятельно расковыривать Это костыль...
П.С. Почему меня вчера на форум непускали?
|
|
| |
nwsx | Дата: Пятница, 14 Февраля 2014, 13:16 | Сообщение # 10 |
постоянный участник
Сейчас нет на сайте
| у всех не работало. это не костыль, это шестерёнка
Westboro Dungeon Journey на Google Play
Сообщение отредактировал nwsx - Пятница, 14 Февраля 2014, 13:17 |
|
| |
darkduelist | Дата: Суббота, 01 Марта 2014, 22:49 | Сообщение # 11 |
частый гость
Сейчас нет на сайте
| Тупость, но я в ней увяз... Накатал вроде(проверить не могу) что то вроде системы, но я ее запустить не могу т.к. что бы ее активировать надо подойти к нпс и нажать кнопку взаимодействия. Игра у меня 2Д с видом сверху, думал через луч, но он не возвращает ссылку на объект... Подскажите как быть?
Добавлено (22.02.2014, 22:46) --------------------------------------------- Выкрутился! Сделал дополнительный колайдер и через него все робит =)
Добавлено (01.03.2014, 22:49) --------------------------------------------- Белиберда получается... У меня есть файл диалогов формата CSV, столбцы - Id, Text, Choice, ChoiceId. Данные загружаются при старте и читается построчно с перескоками на вариантах. Как мне реализовать варианты вывода тех или иных вариантов от условия? Например: Если переключатель А в положении False, не выводить один из вариантов.
Сообщение отредактировал darkduelist - Суббота, 01 Марта 2014, 22:57 |
|
| |
beril | Дата: Среда, 05 Марта 2014, 21:19 | Сообщение # 12 |
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
| Посмотри этот ассет
Накодил? Убери за собой! Инвентарь в Unity(UI) Инвентарь в Unity(GUI)
|
|
| |