- PVSM.RU - https://www.pvsm.ru -
Когда вы начинаете делать UI и/или работать с текстом, вы почти сразу сталкиваетесь с проблемой: а как непосредственно задавать формат этого текста, куда подставлять данные, как прокидывать форматирование и что делать с датами. Решение простое.
Берете язык из String.Format [1] и жените его с Unity Inspector.
Как использовать:
var fpsText = new PreFormatText("-", fps, netFps, lag); _fps.UpdateValueWithoutNotify(fpsText);
Строите строку, где указываете fallback значение и далее передаете сколько угодно параметров.
Пример строки на выходе и комментарий:
FPS: 30 // переменная fps с форматированием 0 NetFPS: 28 // переменная netFps с форматированием 0 Lag: 0.12 // переменна lag с форматированием 0.00
Плюсы подхода:
гибкость определения формата текста
не нужно ничего перекомпилировать
можно загонять форматы во внешние ресурсы
Минусы подхода:
из кода нет валидации параметров
P.S. Я бы порекомендовал выносить всю параметризацию вьюх в инспектор или конфиги. Не держите ничего из этого в коде. Наступит момент, когда придут правки или нужно будет вылизывать анимации до идеала с дизайнером. И он захочет тягать крутилки, кривые и играться с цветом. В этот момент вы поймете, насколько важно иметь прослойку
Автор: Reptiling
Источник [2]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/ui/441787
Ссылки в тексте:
[1] String.Format: https://learn.microsoft.com/en-us/dotnet/api/system.string.format?view=net-10.0
[2] Источник: https://habr.com/ru/articles/984944/?utm_source=habrahabr&utm_medium=rss&utm_campaign=984944
Нажмите здесь для печати.