Страница 1 из 1
Определение высоты текста
Добавлено:
13 янв 2017, 22:27
LogicManager
Всем привет. Есть панелька, которая в столбик генерит текстовые элементы. Проблема в том, что этим элементы могут быть разной высоты.
В принципе есть компонент ContentSizeFitter, который подгоняет rect под размер текста, но в коде он почему то не срабатывает. А именно, при изменении поля text размер rect.height (или sizeDelta.y) не изменяются. Пробовал использовать Canvas.ForceUpdateCanvases(), но тогда элементы становятся больше, не понял почему.
В общем непонятно как можно вернуть высоту в тексте. Ещё хочу попробовать TextGeneration, может кто работал с этой штукой ?
Re: Определение высоты текста
Добавлено:
13 янв 2017, 23:04
bojlahg
так добавляй тексты в VerticalLayout и не надо будет знать какая высота вообще. Там только тонкости есть надо в документации прочитать про minimum height и ContentFitter.
Re: Определение высоты текста
Добавлено:
13 янв 2017, 23:28
LogicManager
я не хотел вовлекать вертикал лейаут потому что он люит всю область занимать =) хм... но если не разрешать ему это делать, то это может сработать =) Но тут ест ьещё один нюанс, мне всё равно надо знать высоту элементов, чтобы понять когда "страница" заполнена, чтобы сгенерировать новую "страницу" =/
Re: Определение высоты текста
Добавлено:
13 янв 2017, 23:39
bojlahg
Сделай скроллинг
Re: Определение высоты текста
Добавлено:
13 янв 2017, 23:54
LogicManager
в книге ? скроллинг ? =)
Re: Определение высоты текста
Добавлено:
14 янв 2017, 00:05
LogicManager
сейчас у меня главная проблема именно в том, что я не могу правильно определить высоту текста (rect.height и sizeDelta.y не успевают обновиться после создания). А Canvas.ForceUpdateCanvases() сама добавляет высоту почему то =(
Ещё есть мысль заюзать OnRectTransformDimensionsChange =)
Re: Определение высоты текста
Добавлено:
14 янв 2017, 11:12
bojlahg
посмотри функцию LayoutUtility.GetPreferredHeight(transform) и класс TextGenerator. может они помогут
Re: Определение высоты текста
Добавлено:
14 янв 2017, 13:55
LogicManager
LayoutUtility.GetPreferredHeight помог, по крайнее мере с текстом =)
Для обычных RectTranslate высоту можно определить с помощью rect.height или sizeDelta.y =)
Спасибо =)
Re: Определение высоты текста
Добавлено:
03 фев 2017, 06:12
LogicManager
И всё равно высота считается не правильно.
И даже LayoutUtility.GetPreferredHeight не помогает
А именно:
Создаю Text и добавляют туда строчку (в результате в игре этот Text по высоте ~50 px)
Но LayoutUtility.GetPreferredHeight тут же мне выдаёт 392 px (чуть меньше чем контейнер, где находится Text).
Такое чувство, что Text не успевает сделать Update своей высоте
Может быть у кого будут мысли на этот счёт ?