Как на всю жизнь сделать удобные текстовые контейнеры в Unity

Все уже придумано. Берете язык из String.Format и жените его с Unity Inspector.

Не программистам: String.Format - язык шаблонов, в которых вы описываете места и формат вставки данных в тексте

Программистам:

Как на всю жизнь сделать удобные текстовые контейнеры в Unity
Как на всю жизнь сделать удобные текстовые контейнеры в Unity
Как на всю жизнь сделать удобные текстовые контейнеры в Unity
var fpsText = new PreFormatText("-", fps, netFps, lag); _fps.UpdateValueWithoutNotify(fpsText);

Пример строки на выходе и комментарий:

FPS: 30 // переменная fps с форматированием 0 NetFPS: 28 // переменная netFps с форматированием 0 Lag: 0.12​ // переменна lag с форматированием 0.00

Строите строку, где указываете fallback значение и далее передаете сколько угодно параметров. Как-нибудь потом покажу, что скрывается за ValueContainer

Плюсы подхода:

+ гибкость определения формата текста

+ не нужно ничего перекомпилировать

+ можно загонять форматы во внешние ресурсы

Минусы подхода:
- из кода не будет никакой проверки на правильные параметры
Совет: выносите всю параметризацию вьюх в инспектор или конфиги. Не держите ничего из этого в коде. Наступит момент, когда придут правки или нужно будет вылизывать анимации до идеала с дизайнером. И он захочет тягать крутилки, кривые и играться с цветом. В этот момент вы поймете, насколько важно иметь прослойку

4
4 комментария