Comments 8
Вот какие классные штуки можно делать, когда в движке есть адекватный сериализатор! Пригласил и опубликовал.
Предложу перенести сниппеты в отдельные блоки кода
А как вы предлагаете решать проблемы локализации? Где хранить тексты разных языков и как их оттуда вытаскивать?
Это другая задача. В ней также делится текст на шаблон и данные под вставку. Можно определить метод изменения шаблона и тянуть его из таблиц. Данные под вставку также брать из таблицы локализации
Как-нибудь напишу и об этом)
В целом это уже задача над этим тестовым контейнером, который описан в посте. Нужна более высокоуровневая обертка
С точки зрения производительности тут сразу можно заметить, что в структуре в обоих конструкторах аллоцируется новый массив, что убивает весь смысл структуры. И при этом из-за object будет происходить боксинг.
С точки зрения юзабилити, поддержку вопрос про локализацию.
И создаётся очень хрупкая связь View и поставщика данных. По сути от нас требуют просто заполнить object[] чем угодно. Но View то ждёт конкретные данные конкретного типа. И чтобы точно понять, что передать и в каком порядке, нужно будет постоянно бегать в редактор и смотреть, какой же там формат указан.
Порядок аргументов в конструкторе тоже очень опасный. Тут fallback - первый. Там - второй. Ошибиться очень легко. И из-за того, что везде object, компилятор даже не подскажет, что есть ошибка, проглотит и вызовет не тот конструктор, на который рассчитывал разработчик.
Чем больше смотрю, тем больше вопросов.
Ну об этом написано в посте. Что есть проблема с валидацией параметров.
Сверху написал, что вопрос локализации - это отдельная большая тема. И никто не запрещает адаптировать код под свою специфику.
Если у вас есть узкое место, которое вы вызываете каждый кадр по множеству раз, то в таком месте - чем меньше прослоек, тем лучше. Это все чинится с профайлером во втором окне. Указанный в посте подход никак не заводит проект в тупик. Если вам понадобилось, вы заменили узкие места на более оптимизированное решение.
Я лично считаю, что микрооптимизации часто загоняют проект в погоню за наносекундами по каждой мелочи, а по итогу на качество конечного продукта это не влияет.
Игрок же в конечном счете играет не в хороший код. Посмотрите на код последних инди хитов, там вообще люди не запариваются над такими материями)
Ну и в общем-то. Всё, что вы написали в сообщении, может быть решено. Я написал - статью тип на 1 минуту чтения. Очевидно, что огромное количество вещей упущено
Как на всю жизнь сделать удобные текстовые контейнеры в Unity