Когда вы начинаете делать UI и/или работать с текстом, вы почти сразу сталкиваетесь с проблемой: а как непосредственно задавать формат этого текста, куда подставлять данные, как прокидывать форматирование и что делать с датами. Решение простое.
Берете язык из String.Format и жените его с 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. Я бы порекомендовал выносить всю параметризацию вьюх в инспектор или конфиги. Не держите ничего из этого в коде. Наступит момент, когда придут правки или нужно будет вылизывать анимации до идеала с дизайнером. И он захочет тягать крутилки, кривые и играться с цветом. В этот момент вы поймете, насколько важно иметь прослойку