Высота GUI.Label [РЕШЕНО]

Программирование на Юнити.

Высота GUI.Label [РЕШЕНО]

Сообщение BlackMamba 16 янв 2011, 18:12

В моем гуе существует GUI.Label, в который подгружается текст из другого компонента, его ширина привязана к текущему разрешению, текст достаточно объемный, понятно, что при разном разрешении его высота будет различаться, есть ли способ задавать высоту лейбла в зависимости от объема текста? Необходимо, так как после него идут другие элементы гуя, которые "прижимаются" в нижней границе лейбла.
Пробовал создать переменную типа Rect и циклом увеличивать ее размеры, пока в нее не влезет весь текст с помощью функции Contains, но не смог придумать, какой элемент она должна проверять на содержание, да и цикл в OnGUI как-то ресурсозатратно и не надежно (имхо), в общем, может, кто знает, как сделать "автовысоту" лейбла по его содержанию?
Последний раз редактировалось BlackMamba 20 янв 2011, 20:33, всего редактировалось 1 раз.
mail: _gdeMoiGusi@gmail.com
skype: Ellseworth
Аватара пользователя
BlackMamba
UNITрон
 
Сообщения: 305
Зарегистрирован: 06 янв 2011, 16:16
Откуда: Москва

Re: Высота GUI.Label

Сообщение Paul Siberdt 16 янв 2011, 18:19

Не знаю, как там с гуями, но с 3D-текстом я работал, читая renderer.bounds.extents
Возможно, что-то подобное есть у GUI.
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: Высота GUI.Label

Сообщение BlackMamba 16 янв 2011, 20:06

честно говоря, даже не знаю, как это привязать к лейблу или другому объекту гуя
mail: _gdeMoiGusi@gmail.com
skype: Ellseworth
Аватара пользователя
BlackMamba
UNITрон
 
Сообщения: 305
Зарегистрирован: 06 янв 2011, 16:16
Откуда: Москва

Re: Высота GUI.Label

Сообщение BlackMamba 16 янв 2011, 20:33

вроде есть решение: GUIStyle.CalcHeight, буду курить...
mail: _gdeMoiGusi@gmail.com
skype: Ellseworth
Аватара пользователя
BlackMamba
UNITрон
 
Сообщения: 305
Зарегистрирован: 06 янв 2011, 16:16
Откуда: Москва

Re: Высота GUI.Label [РЕШЕНО]

Сообщение BlackMamba 18 янв 2011, 17:29

в соответствии с трендом форума пишу решение:
создаем стиль для элемента:
var LoginRulesContentStyle : GUIStyle;
по нему считаем высоту контента в пикселях при фиксированной ширине:
var Height1 : int = LoginRulesContentStyle.CalcHeight (GUIContent (GameRules.Rules1_1), ScreenWidth-65)+10;
GUI.Label (Rect(X, Y, ScreenWidth-65, Height1), GUIContent(GameRules.Rules1_1), LoginRulesContentStyle);
+10 добавил от себя, соичиталось немного не точно.
mail: _gdeMoiGusi@gmail.com
skype: Ellseworth
Аватара пользователя
BlackMamba
UNITрон
 
Сообщения: 305
Зарегистрирован: 06 янв 2011, 16:16
Откуда: Москва

Re: Высота GUI.Label [РЕШЕНО]

Сообщение Zaicheg 18 янв 2011, 19:04

BlackMamba писал(а):+10 добавил от себя, соичиталось немного не точно.

Мне кажется, что считается там точно, просто вы не до конца понимаете, что именно там считается и исходя из чего. Я вот тоже в своё время не до конца понял и тоже прибавлял на глаз.
А [РЕШЕНО] надо добавлять к заголовку первого сообщения темы через его редактирование.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Высота GUI.Label [РЕШЕНО]

Сообщение BlackMamba 20 янв 2011, 20:46

Думаю, что считает оно высоту в пикселях контента, отрендеренного по правилам указанного стиля, сначала я создал стиль, но забыл задать его для области контента - стабильно не отрисовывалась половина последней строчки, отсюда +10, потом задал стили и теперь все считается ровно.
mail: _gdeMoiGusi@gmail.com
skype: Ellseworth
Аватара пользователя
BlackMamba
UNITрон
 
Сообщения: 305
Зарегистрирован: 06 янв 2011, 16:16
Откуда: Москва


Вернуться в Скрипты

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

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


cron