@youkerni
Unity3D developer

Почему height у RectTransform = 0?

Мне нужно сделать страницу дневника на которой будут располагать 3-5 фраз в зависимости от их размера(он зависит от количества текста в UI.Text).

Для удобства решил использовать VecticalLayoutGroup вот с такими настройками
skrinshoter.ru/s/220518/kcMs35mX?a
Поставив выделенную галочку текст начал очень приятно адаптировать свою высоту.
Правда теперь вручную управлять ей мы не можем. Но это меня устраивает.
skrinshoter.ru/s/220518/i8KSfNum?a

Так же я сделал 5 UI.Text (все дочерние у VerticalLayoutGroup), 3 из которых включены по умолчанию, а остальные буду включать с случае если первые 3 фразы занимают не все свободное пространство (за все пространство я считаю RectTransform.rect.height у VerticalLayoutGroup).

Остался последний шаг: вычислить текущий height у каждого Text в зависимости от строки которая в него помещена. Делаю я это так:
skrinshoter.ru/s/220518/481bmNku?a

Но height у RectTransform при включенной галочке на VecticalLayout всегда равен 0.
Выключаю - теряю адаптивность, но height показывает правильный.

Как мне получить height у RectTransform если им управляет layoutGroup?
  • Вопрос задан
  • 87 просмотров
Решения вопроса 1
@youkerni Автор вопроса
Unity3D developer
Проблема была в том, что размер контейнера UI.Text (когда его контролирует VLG) высчитывается через какое-то время.
Так как размер контейнера высчитывается не сразу необходимо сделать задержку.
В начале я вставил текст в контейнер, сделал в корутине задержку, после чего получил корректные размеры контейнеров.
skrinshoter.ru/s/230518/7xHp7RjU?a
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
freeExec
@freeExec
Участник OpenStreetMap
Используйте компонент Content Size Fitter
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы