Не переменная, а поле. Не функция, а метод. Все имена методов с большой буквы (MSDN, у нас тут на PHP). Соблюдать инкапсуляцию - не делать поля открытыми. Использовать сериализуемые поля, использовать геттеры и сеттеры для доступа из других классов. Наличие в коде двух методов запуска одной корутины (не произносить коруНтина), работающей с одним текстом, без передачи ссылки на корутину в поле и возможности её остановки, в перспективе грозит запуском 2х экземпляров корутины одновременно (нет контроля запуска корутины или флага окончания её работы). Остановить все корутины = остановить ВСЕ корутины в данном скрипте (solid? ). Будет +1 новая корутина, будут проблемы.
Ну прям диалоговой системой это трудно назвать. Для лучшей диалоговой системы лучше создать класс где можно будет указать текст, картинку, и тд тп, и потом просто создать массив этого класса. Потом просто все идет по такой же схеме только можно будет уже удобно указывать текст диалога и фото. Можно будет еще сделать что-бы событие вызывалось когда проигрывается какой-то сценарий диалога, можно сделать еще что-бы были паузы между точками и запятыми, и тогда уже можно будет назвать не плохой диалоговой системой
это все очень круто но мне нужно создать переменные и в зависимости от их значения загружать разные текстовые фалы тип как с анимацией ты на 1 части диалога выбираеш что ответить и с этого ответа ты переходиш к другой части диалога переход которого соответствует значению некоторых переменных я понимаю как примерно это сделать но не достаточно чтобы реализовать
Я думаю, что вы уже давно решили свою проблему, но похожие вопросы, например с анимациями, я решал через машину состояний (enum). Сейчас планирую пробовать создать свою новеллу, мне кажется это как раз то, что нужно.
Не тестил код, но скорее всего дело в том, что текст это массив предложений. И тебе надо будет разбить весь свой текст на отдельные элементы массива и запихать вовнутрь ИНСПЕКТОРА (правое окно юнити), когда тыкнешь на объект, в который ты кинул скрипт
Если пропустить диалог, пока строчка еще не закончила печататься, не будет ли проблем из-за наложения одной корутины на другую? Сейчас не могу проверить, но у меня частенько с этим бывали баги. Думаю, стоит перед стартом новой корутины принудительно останавливать предыдущую, для более стабильной работы.
Да, всё верно подмечено, в конце видео я немного обрезал этот момент, но там я создал кнопку на весь экран, и дал ей название ScipText, к кнопке была привязана функция scipTextClick(), она проверяла все ли буквы выставлены, если да то запускалась функция NextLine(), если нет, то запускалась StopAllCoroutines(), и заменялся текст по текущему индексу dialogueText.text = lines[index].
Вызов метода ToCharArray() у строки в данном случае совершенно бесполезен и даже вреден, аллоцируется лишняя память только на него. Других ошибок тоже полно, такой себе туториал
Чел, я понимаю хочется громко обозвать ролик.Но это не диалоговая система, а ссаный скрипт по выводу текста в UI, ну да, к чести ты смог написать функцию которая выводит его по 1ой букве....
@@drag_bruh5739 по сути нормальная диалоговая система должна иметь звук при печати , возможность выбора ответа для разных решения событий и.т.д а так это буквально чисто скрипт по выводу текста с небольшой анимацией
Очень полезный видос, видела от другого блогера на 30 мин, а здесь всё легко и понятно. Очень помогло для создания игры за 7 дней
Всего 12 часов и Ютуб уже рекомендует такой классный ролик. Спасибо за полезный материал. Всё было понятно и интересно разъяснено. Успехов!
Всем спасибо за просмотр = )
Не переменная, а поле. Не функция, а метод. Все имена методов с большой буквы (MSDN, у нас тут на PHP).
Соблюдать инкапсуляцию - не делать поля открытыми.
Использовать сериализуемые поля, использовать геттеры и сеттеры для доступа из других классов.
Наличие в коде двух методов запуска одной корутины (не произносить коруНтина), работающей с одним текстом, без передачи ссылки на корутину в поле и возможности её остановки, в перспективе грозит запуском 2х экземпляров корутины одновременно (нет контроля запуска корутины или флага окончания её работы).
Остановить все корутины = остановить ВСЕ корутины в данном скрипте (solid? ). Будет +1 новая корутина, будут проблемы.
Ну прям диалоговой системой это трудно назвать. Для лучшей диалоговой системы лучше создать класс где можно будет указать текст, картинку, и тд тп, и потом просто создать массив этого класса. Потом просто все идет по такой же схеме только можно будет уже удобно указывать текст диалога и фото. Можно будет еще сделать что-бы событие вызывалось когда проигрывается какой-то сценарий диалога, можно сделать еще что-бы были паузы между точками и запятыми, и тогда уже можно будет назвать не плохой диалоговой системой
А еще звуки печатания текста, можно будет даже сделать что-бы при определенном сценарии диалога менялся этот звук
Спасибо за видео))
А я свою систему писал часа 3-4…
Спасибо
спасибо большое
это все очень круто но мне нужно создать переменные и в зависимости от их значения загружать разные текстовые фалы тип как с анимацией ты на 1 части диалога выбираеш что ответить и с этого ответа ты переходиш к другой части диалога переход которого соответствует значению некоторых переменных я понимаю как примерно это сделать но не достаточно чтобы реализовать
какая же жиза
Я думаю, что вы уже давно решили свою проблему, но похожие вопросы, например с анимациями, я решал через машину состояний (enum). Сейчас планирую пробовать создать свою новеллу, мне кажется это как раз то, что нужно.
@@erenjeger3049 оо я использовал программу inky пришлось запарится чтобы разобраться но желаемого я добился
Да я добился того чего хотел используя inky @@erenjeger3049
Блин а как сделать систему диалогов НПС с НПС и чтобы во время этого процесса они просто стояли???
активацию скрипта по тригеру
Комментарии для продвижения видео
Не могу закинуть свой текст в скрипт, в чём проблема подскажите пожалуйста
Не тестил код, но скорее всего дело в том, что текст это массив предложений. И тебе надо будет разбить весь свой текст на отдельные элементы массива и запихать вовнутрь ИНСПЕКТОРА (правое окно юнити), когда тыкнешь на объект, в который ты кинул скрипт
была таже проблема используй
текст легаси
Если пропустить диалог, пока строчка еще не закончила печататься, не будет ли проблем из-за наложения одной корутины на другую? Сейчас не могу проверить, но у меня частенько с этим бывали баги. Думаю, стоит перед стартом новой корутины принудительно останавливать предыдущую, для более стабильной работы.
Да, всё верно подмечено, в конце видео я немного обрезал этот момент, но там я создал кнопку на весь экран, и дал ей название ScipText, к кнопке была привязана функция scipTextClick(), она проверяла все ли буквы выставлены, если да то запускалась функция NextLine(), если нет, то запускалась StopAllCoroutines(), и заменялся текст по текущему индексу dialogueText.text = lines[index].
Tmp_Text >
Уж извините. Все это костыли на коленках)
Для чего-то простого норм
Вызов метода ToCharArray() у строки в данном случае совершенно бесполезен и даже вреден, аллоцируется лишняя память только на него. Других ошибок тоже полно, такой себе туториал
скинь скрипт пж
cs 1002 пишет
Ужасный код за 5 минут, без обид
Чел, я понимаю хочется громко обозвать ролик.Но это не диалоговая система, а ссаный скрипт по выводу текста в UI, ну да, к чести ты смог написать функцию которая выводит его по 1ой букве....
ну расскажи что такая диалоговая система?
@@drag_bruh5739 по сути нормальная диалоговая система должна иметь звук при печати , возможность выбора ответа для разных решения событий и.т.д а так это буквально чисто скрипт по выводу текста с небольшой анимацией