Как на всю жизнь сделать удобные текстовые контейнеры в Unity
Все уже придумано. Берете язык из String.Format() и жените его с Unity Inspector.
Не программистам String.Format - язык шаблонов, в которых вы описываете места вставки и форматирование данных в тексте через такой же текст.
Программистам Скрины и код: var fpsText = new PreFormatText("-", fps, netFps, lag); _fps.UpdateValueWithoutNotify(fpsText); Строите строку, где указываете fallback значение и далее передаете сколько угодно параметров.
Как-нибудь потом покажу что скрывается за ValueContainer
Плюсы подхода:
- гибкость определения формата текста
- не нужно ничего перекомпилировать
- можно загонять форматы во внешние ресурсы
Минусы подхода:
- из кода не будет никакой проверки на правильные параметры
Совет: выносите всю параметризацию вьюх в инспектор или конфиги. Не держите ничего из этого в коде. Наступит момент, когда придут правки или нужно будет вылизывать анимации до идеала с дизайнером. И он захочет тягать крутилки, кривые и играться с цветом. В этот момент вы поймете, насколько важно иметь прослойку