Как получить размеры TMP

Во всех наших играх есть список друзей и чаты между ними. Уже много лет для его реализации я использую UIS, свой же скрипт для бесконечных списков. И когда надо посчитать высоту элемента чата (облачко, speech balloon), это делалось с помощью старой функции подсчета слов, переносов строк и т.п. И в общем-то, работает это до сих пор нормально.

Но сейчас при создании новой игры, я нашёл более правильное решение этой задачи. Оказывается 😅 у TMP есть специальный метод который позволяет получить размеры компонента до! установки туда текста:

var size = _message.GetPreferredValues(text);

И размеры будут с учётом якорей, отступов и прочего. А если нужно получить, например, размеры с фиксированной шириной и изменяемой высотой, то можно задать это дополнительными параметрами:

var size = _message.GetPreferredValues(text, MAX_ITEM_WIDTH, Mathf.Infinity);

Так что в новой игре чатики будут красивее 😁

Все исходники UIS доступны на Github

Нет комментариев

    Ваш комментарий