Определение высоты текста

Графический интерфейс пользователя

Определение высоты текста

Сообщение LogicManager 13 янв 2017, 22:27

Всем привет. Есть панелька, которая в столбик генерит текстовые элементы. Проблема в том, что этим элементы могут быть разной высоты.
В принципе есть компонент ContentSizeFitter, который подгоняет rect под размер текста, но в коде он почему то не срабатывает. А именно, при изменении поля text размер rect.height (или sizeDelta.y) не изменяются. Пробовал использовать Canvas.ForceUpdateCanvases(), но тогда элементы становятся больше, не понял почему.
В общем непонятно как можно вернуть высоту в тексте. Ещё хочу попробовать TextGeneration, может кто работал с этой штукой ?
LogicManager
UNITрон
 
Сообщения: 255
Зарегистрирован: 03 фев 2014, 18:08

Re: Определение высоты текста

Сообщение bojlahg 13 янв 2017, 23:04

так добавляй тексты в VerticalLayout и не надо будет знать какая высота вообще. Там только тонкости есть надо в документации прочитать про minimum height и ContentFitter.
Мои проекты: MahJah Star Factory Cop Car Swash! Spline Editor
Аватара пользователя
bojlahg
UNIверсал
 
Сообщения: 392
Зарегистрирован: 13 авг 2011, 10:57
Откуда: Сатка
Skype: bojlahg
  • Сайт

Re: Определение высоты текста

Сообщение LogicManager 13 янв 2017, 23:28

я не хотел вовлекать вертикал лейаут потому что он люит всю область занимать =) хм... но если не разрешать ему это делать, то это может сработать =) Но тут ест ьещё один нюанс, мне всё равно надо знать высоту элементов, чтобы понять когда "страница" заполнена, чтобы сгенерировать новую "страницу" =/
LogicManager
UNITрон
 
Сообщения: 255
Зарегистрирован: 03 фев 2014, 18:08

Re: Определение высоты текста

Сообщение bojlahg 13 янв 2017, 23:39

Сделай скроллинг
Мои проекты: MahJah Star Factory Cop Car Swash! Spline Editor
Аватара пользователя
bojlahg
UNIверсал
 
Сообщения: 392
Зарегистрирован: 13 авг 2011, 10:57
Откуда: Сатка
Skype: bojlahg
  • Сайт

Re: Определение высоты текста

Сообщение LogicManager 13 янв 2017, 23:54

в книге ? скроллинг ? =)
LogicManager
UNITрон
 
Сообщения: 255
Зарегистрирован: 03 фев 2014, 18:08

Re: Определение высоты текста

Сообщение LogicManager 14 янв 2017, 00:05

сейчас у меня главная проблема именно в том, что я не могу правильно определить высоту текста (rect.height и sizeDelta.y не успевают обновиться после создания). А Canvas.ForceUpdateCanvases() сама добавляет высоту почему то =(
Ещё есть мысль заюзать OnRectTransformDimensionsChange =)
LogicManager
UNITрон
 
Сообщения: 255
Зарегистрирован: 03 фев 2014, 18:08

Re: Определение высоты текста

Сообщение bojlahg 14 янв 2017, 11:12

посмотри функцию LayoutUtility.GetPreferredHeight(transform) и класс TextGenerator. может они помогут
Мои проекты: MahJah Star Factory Cop Car Swash! Spline Editor
Аватара пользователя
bojlahg
UNIверсал
 
Сообщения: 392
Зарегистрирован: 13 авг 2011, 10:57
Откуда: Сатка
Skype: bojlahg
  • Сайт

Re: Определение высоты текста

Сообщение LogicManager 14 янв 2017, 13:55

LayoutUtility.GetPreferredHeight помог, по крайнее мере с текстом =)
Для обычных RectTranslate высоту можно определить с помощью rect.height или sizeDelta.y =)
Спасибо =)
LogicManager
UNITрон
 
Сообщения: 255
Зарегистрирован: 03 фев 2014, 18:08

Re: Определение высоты текста

Сообщение LogicManager 03 фев 2017, 06:12

И всё равно высота считается не правильно.
И даже LayoutUtility.GetPreferredHeight не помогает

А именно:

Создаю Text и добавляют туда строчку (в результате в игре этот Text по высоте ~50 px)
Но LayoutUtility.GetPreferredHeight тут же мне выдаёт 392 px (чуть меньше чем контейнер, где находится Text).
Такое чувство, что Text не успевает сделать Update своей высоте

Может быть у кого будут мысли на этот счёт ?
LogicManager
UNITрон
 
Сообщения: 255
Зарегистрирован: 03 фев 2014, 18:08


Вернуться в uGUI

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3