Игровой дизайн, гейм дизайн (game design)
GameDev.ru / Игровой Дизайн / Форум / Контейнер для текста в Unity3d

Контейнер для текста в Unity3d

MSA2Пользовательwww19 фев. 20182:43#0
Доброго времени суток!

Возникла необходимость использовать контейнер наподобие DIV в HTML для вывода текста в UI канвас на движке Unity3d.
Готовой подобной функции не нашёл. Есть контейнер со скроллингом, но он для моих задач не подходит.

А мне нужно имитировать чат мессенджера, в котором игрок будет постоянно получать информацию
и периодически выбирать варианты ответа.

Гугление и ходьба по сайтам не увенчалась успехом.
Подскажите существуют ли подобные скрипты и если существуют, где можно поискать?

Заранее спасибо!

Правка: 19 фев. 2018 2:44

AlexdeBurПостоялецwww19 фев. 20185:04#1
Можно же сделать Vertical Layout Group, в нее запихнуть Scrollable List с текстом внутри, в него писать историю чата, а ниже листа - блок с вариантами ответа. Если выбирать нечего - просто выключаем объект блока ответов, он скрывается, группа сама увеличит размер истории чата. Если я правильно понимаю, то, что нужно.
MSA2Пользовательwww19 фев. 201814:07#2
AlexdeBur
Спасибо за наводку!
Этими штатными средствами вполне можно сделать то, что мне нужно.
Будет работать как задумано, хотя и потребуется лёгкое допиливание рашпилем))
MSA2Пользовательwww20 фев. 201820:09#3
Печаль моя велика!((

После тщательного изучения возможностей Vertical Layout Group и скрипта Content Size Fitter из той же серии,
возникла идея взять исходники этих скриптов и немного их доработать, но найти исходники не удалось.
Вроде же где то есть исходники Unity? Типа открытый исходный код и всё такое..

Написал альтернативный вариант Vertical Layout Group, без лишних фич локанья параметров дочерних объектов,
который повесил на корневой объект вьюпорта Content:

2018-02-20_191806 | Контейнер для текста в Unity3d

и который выстраивает child-объекты с текстом по вертикали относительно родительского, с учётом
единственного параметра отступа Spacing. В общем всё стандартно. При этом на каждый
блок Text area повесил упомянутый выше скрипт Content Size Fitter, который высчитывает
текущий размер объекта и растягивает его до этого размера, если были какие то изменения.
Кроме того, каждый блок с текстом получил дочерний объект Panel, который нужен для того,
чтобы нарисовать фоновый прямоугольник сообщения. С этим всё ясно.

2018-02-20_192837 | Контейнер для текста в Unity3d

Однако возникла неожиданная проблема - именно при работе моего скрипта. Параметр Value
стандартного скрипта UI под названием Scroll View в окне Inspector изменить невозможно.
После компиляции проекта чат скроллится мышкой, однако в этом случае ограничений прокрутки нет
и текст можно заскроллить в космос или в параллельную вселенную...
При работе Vertical Layout Group такой проблемы не наблюдается.

2018-02-20_194314 | Контейнер для текста в Unity3d

Кто знает в чём тут дело? Как вернуть нормальную работу стандартного скроллбара?
Сделал выравнивание реплик в чате, всё как задумано. Но теперь скрипты не хотят
работать с моим скриптом. В чём тут взаимосвязь?

p.s.
Мою тривиальную задачу можно решить штатными средствами, только это решение
крайне громоздкое и нелепое. Пытаюсь всё же сделать просто и эффективно.

Правка: 20 фев. 2018 20:12

/ Форум / Игровой Дизайн / Общее

2001—2018 © GameDev.ru — Разработка игр