Чисто в теории насколько сложно создать систему где ответ на один диалог влияет на то какие потом будут сюжетные повороты/ответы на другие диалоги.(Игра ДнД по типу shakes and fidget т.е. и не новелла, но и нет прямого взаимодействия с миром) Типо персонаж ответил на просьбу нипа нет, и потом к нему больше не будет подходить этот нип с просьбами(а нип дает квесты и получается что сюжетная ветка с этим нипом полностью закрыта или потом откроется после какого-то квеста) - это более-менее простой и понятный пример который могу сформулировать, но суть в том что в кнопке помимо продолжения диалога есть действие, и это действие можно полностью менять от ответа к ответу(т.е. какой-то ответ будет: менять характеристики или давать новый квест, начинать драку, менять сюжетную линию и т.д.) Просто еще ни разу не делал диалоги и в моем представлении это создавать unityaction для каждого типа действий.
а если делать такой диалог, который будет появляться при приближении игрока к нпс? я сделала так, чтобы Dialogue при попадании в триггерную зону нпс показывался, а при выходе из нее скрывался но само окошко то показывается, а кнопки с дефолтным текстом и не нажимаются(соответственно и диалога дальнейшего нет) пыталась в скрипт, где описываю видимости, как-то кнопки привязать, но, ожидаемо, не работает как в таком случае нужно прописывать видимость, чтобы диалог оставался работающим? (возможно ответ очевиден, но я совсем недавно начала изучать юнити....)
Надо при включении диалога выбрать диалог вызвав метод ChangeStory Кстати у меня уже лежит система взаимодействия, как-раз то что тебе надо, но видео я пока не снимал
Подскажите, пожалуйста, как поправить код Диалог начинает работать по триггеру (при вхождении в зону работы триггера, появляется кнопка "начать диалог", после нажатия на кнопку, через функцию SetActive появляется само диалоговое окно. После покидания зоны работы триггера, и кнопка, и диалоговое окно, пропадают) Как сделать так, чтобы при новом вхождении в триггер или при каждом новом нажатии на кнопку, диалог начинался сначала? (Сейчас при этом действии, диалог открывается с последней фразы) Как передать тег первого диалога в ChangeStory? Сейчас реализация выглядит так: Скрипт триггера и кнопки подключены к namespace Dialogue. При вхождении в скрипт срабатывает DialogueBox.SetActive(true); _dialogueStory = GetComponent(); _dialogueStory.ChangeStory('tag0'); DialogueBox - GameObject диалогового окна tag0 - тег первой фразы в диалоге, которая запускает всю цепочку Очевидно, что у меня ошибка и, скорее всего, глупая) Скорее всего, я или неправильно передаю данные в ChangeStory, или делаю что-то неправильно по самой сути работы методов... P.S. На скрипте работы кнопки тоже есть такой же кусочек кода, чтобы запускать диалог сначала и при выходе из триггера, и при новом нажатии на кнопку. Понятное дело, это не меняет ситуацию)
Я скоро буду делать видео про систему взаимодействия как-раз та которая тебе нужна:3 По идее ты всё сделал верно, после нажатия на кнопку начала диалога передавай тег 1 диалога в ChangeStory. Что конкретно не работает?
@@HitsarOrig Не срабатывает как раз сама передача тега в ChangeStory. В моём случае строка выглядит как: _dialogueStory.ChangeStory('tag0'); Возможно, ошибка в синтаксисе или я просто как-то не так передаю тег... P.S. При попытке поставить не одиночные кавычки, а двойные, выдаёт ошибку о том, что слишком много символов
@@HitsarOrig Спасибо :3 Поправил, перестало ругаться) Ошибку у себя, кстати, тоже нашёл... Несколько дней в упор не видел, что прикрепил не тот скрипт к объекту. Правил один скрипт, а на объекте висел другой🥲
Идея реализация интересная. Но теги через строку делать не очень хорошо, т.к. есть возможность опечатки. Понятно, что ты будешь стараться делать это все внимательно, но рано или поздно можешь ошибиться, а потом голову будешь ломать
ты прав, и я задумывался над этим, в конце я предложил идею где можно написать все возможные теги в массиве а потом из выпадающего списка выбирать их, но это требует навыки эдитор скриптинга которых у меня нет. В скоре я начну ноды для этой системы делать, так что всё будет чики пуки :3 но в любом случае в ошибке пишется какой тег отсутствует в словаре, так что хоть как то можно отследить
Должен быть объект EventSystem На канвасе должен быть GraphicRaycaster Кнопки не должны перекрываться другим UI (проверь может есть прозрачный) чем ниже в иерархии тем выше отображается Interwctable модет выключен (но скрипт должен жто контролировать) Должны на image быть Галочка на Raycast target
Посмотрев 2 прошлых видео по этой теме могу сказать что мне хватило одной минуты просмотра этого видео, что бы сразу сказать что лучшего видоса на эту тему уже не будет, хоть код хороший
У кого возникают ПРОБЛЕМЫ с КНОПКАМИ ОТВЕТОВ, убедитесь что в AnswerButtons Start заменён на Awake!!
Чисто в теории насколько сложно создать систему где ответ на один диалог влияет на то какие потом будут сюжетные повороты/ответы на другие диалоги.(Игра ДнД по типу shakes and fidget т.е. и не новелла, но и нет прямого взаимодействия с миром) Типо персонаж ответил на просьбу нипа нет, и потом к нему больше не будет подходить этот нип с просьбами(а нип дает квесты и получается что сюжетная ветка с этим нипом полностью закрыта или потом откроется после какого-то квеста) - это более-менее простой и понятный пример который могу сформулировать, но суть в том что в кнопке помимо продолжения диалога есть действие, и это действие можно полностью менять от ответа к ответу(т.е. какой-то ответ будет: менять характеристики или давать новый квест, начинать драку, менять сюжетную линию и т.д.) Просто еще ни разу не делал диалоги и в моем представлении это создавать unityaction для каждого типа действий.
Что первое пришло на ум это по твоему считывать что ответил игрок и там уже менать. Для этого он и создавался по сути
Умничка) очень хорошая подача
Что делать у меня в скрипте DialogueStory пишет что KeySelector не существует в данном контексте
Возможно ты не правильно написал тег в кнопке ответа
Как потом вызвать определенный диалог, каким методом?
ChangeStory, передаёшь тег диалога который надо включить и готово :>
а если делать такой диалог, который будет появляться при приближении игрока к нпс?
я сделала так, чтобы Dialogue при попадании в триггерную зону нпс показывался, а при выходе из нее скрывался
но само окошко то показывается, а кнопки с дефолтным текстом и не нажимаются(соответственно и диалога дальнейшего нет)
пыталась в скрипт, где описываю видимости, как-то кнопки привязать, но, ожидаемо, не работает
как в таком случае нужно прописывать видимость, чтобы диалог оставался работающим?
(возможно ответ очевиден, но я совсем недавно начала изучать юнити....)
Надо при включении диалога выбрать диалог вызвав метод ChangeStory
Кстати у меня уже лежит система взаимодействия, как-раз то что тебе надо, но видео я пока не снимал
А как начать диалог?
Подскажите, пожалуйста, как поправить код
Диалог начинает работать по триггеру (при вхождении в зону работы триггера, появляется кнопка "начать диалог", после нажатия на кнопку, через функцию SetActive появляется само диалоговое окно. После покидания зоны работы триггера, и кнопка, и диалоговое окно, пропадают)
Как сделать так, чтобы при новом вхождении в триггер или при каждом новом нажатии на кнопку, диалог начинался сначала? (Сейчас при этом действии, диалог открывается с последней фразы)
Как передать тег первого диалога в ChangeStory?
Сейчас реализация выглядит так:
Скрипт триггера и кнопки подключены к namespace Dialogue. При вхождении в скрипт срабатывает
DialogueBox.SetActive(true);
_dialogueStory = GetComponent();
_dialogueStory.ChangeStory('tag0');
DialogueBox - GameObject диалогового окна
tag0 - тег первой фразы в диалоге, которая запускает всю цепочку
Очевидно, что у меня ошибка и, скорее всего, глупая)
Скорее всего, я или неправильно передаю данные в ChangeStory, или делаю что-то неправильно по самой сути работы методов...
P.S. На скрипте работы кнопки тоже есть такой же кусочек кода, чтобы запускать диалог сначала и при выходе из триггера, и при новом нажатии на кнопку. Понятное дело, это не меняет ситуацию)
Я скоро буду делать видео про систему взаимодействия как-раз та которая тебе нужна:3
По идее ты всё сделал верно, после нажатия на кнопку начала диалога передавай тег 1 диалога в ChangeStory. Что конкретно не работает?
@@HitsarOrig Не срабатывает как раз сама передача тега в ChangeStory. В моём случае строка выглядит как:
_dialogueStory.ChangeStory('tag0');
Возможно, ошибка в синтаксисе или я просто как-то не так передаю тег...
P.S. При попытке поставить не одиночные кавычки, а двойные, выдаёт ошибку о том, что слишком много символов
@@Keklik44 ' ' это символ
" " это строка
Тебе надо писать двойные кавычки
@@HitsarOrig Спасибо :3
Поправил, перестало ругаться)
Ошибку у себя, кстати, тоже нашёл... Несколько дней в упор не видел, что прикрепил не тот скрипт к объекту. Правил один скрипт, а на объекте висел другой🥲
А что делать когда у меня не находит Serializable и Action в скрипте DialogueStory?
проверь добавлен ли у тебя using System;
Идея реализация интересная. Но теги через строку делать не очень хорошо, т.к. есть возможность опечатки. Понятно, что ты будешь стараться делать это все внимательно, но рано или поздно можешь ошибиться, а потом голову будешь ломать
ты прав, и я задумывался над этим, в конце я предложил идею где можно написать все возможные теги в массиве а потом из выпадающего списка выбирать их, но это требует навыки эдитор скриптинга которых у меня нет.
В скоре я начну ноды для этой системы делать, так что всё будет чики пуки :3
но в любом случае в ошибке пишется какой тег отсутствует в словаре, так что хоть как то можно отследить
Привет , много игр сделал уже ?
Привет, сделал довольно много, но это скорее прототипы, в основном я не делаю проекты один
@@HitsarOrig понятно
Ты конечно лайкнул слово и я вспомнил просто мне нужна помащь по игре готов платить но если не ошибаюсь ты меня заблокал
@@Game_Studio.12 помочь могу, вряд ли я тебя блокал
@@HitsarOrig ну по нику это ты
Почему-то не прожимаются кнопки. Если жать, ничего не происходит, диалог не сменяется
В чем может быть проблема?
Должен быть объект EventSystem
На канвасе должен быть GraphicRaycaster
Кнопки не должны перекрываться другим UI (проверь может есть прозрачный) чем ниже в иерархии тем выше отображается
Interwctable модет выключен (но скрипт должен жто контролировать)
Должны на image быть Галочка на Raycast target
Спасибо огромное, все работает 🙏
Кайф)
Продолжай
Хорошо:>
не хочешь сделать гайд про движение, чтобы можно было приседать и наклонятся вправо влево
Я как-раз собирался делать обновление старому:3
Думаю лучше для шутера когда буду делать добавлю
Имба
Посмотрев 2 прошлых видео по этой теме могу сказать что мне хватило одной минуты просмотра этого видео, что бы сразу сказать что лучшего видоса на эту тему уже не будет, хоть код хороший
Спасибо:3
Крутое видео 10/10
1 запутанно.
2 ваще не оптимизированная система
3 я не гипард чтоб с такой скоростью все понимать
делай нормальные переходы в этом моменте 0:58 не видно что там ты дописал
вобще это было сделано специально. я уже понял что плохая идея😅
@@HitsarOrigокей
А что там после ChangedStory(_stories[0]. написано? Всё, что я успел разглядеть это букву t
Tag
думаю логично учитывая что и название аргумента такое и есть такое свойство Tag в Story :3
А вы не пробовали с увеличенным качеством уменьшить скорость и ставить на паузу?
Мне всё видно и понятно
че так быстро я ничего не успеваю
Я пытаюсь делать медленней но на частях с кодом пока не получается
Паузу никто не удалял если что
дизлайк, все очень быстро и не понятно