Выглядит понятно, не правда ли? Вот и я, когда его увидел спустя практически год, первые минут 10 сидел и не понимал зачем мы наняли Шеогората. Никакой организации, огромное количество элементов, которые не нужны от слова совсем. Особенно это заметно в EndOfLevelPanel. Для всех адекватных людей, которые не понимают, что тут происходит, объясняю. В нашей игре есть три состояния Canvas’a: игровая панель (она активна во время игры), панель Настроек (местная пауза и доступ к первичным настройкам) , панель Результатов (активируется в конце уровня и показывает результаты прохождения) . Поскольку все элементы разброса внутри канваса, в случае необходимости включить\выключить панель, из разных мест к разным элементам обращались разные классы. Внутри EndOfLevelPanel есть функциональные элементы (HomeButton, RestartButton и т. д.) и, как я их называю, «ленивые» (все points нужны, чтобы считать их положение и создать там префаб достижения; Achievement префабы тех самых достижений, видимо для того, чтобы не создавать новые, а просто передвинуть уже заранее «заряженные»).
На канвас в конце статьи все еще больно смотреть. Ведь изменение каждого элемента канваса ведет к его полной перерисовке. И да, об этом сказано в статье от Banzai, на которую ссылается автор
Интересный момент. Я на эту тему провел тест, мол как лучше. Как итог: если объекты выключены, то отрисовывать он их будет, так что выносить в три разных канваса смысла нет.
"Что я предлагаю Мы сразу ставим спрайт, что звезда порлученна, а если нужно, мы заменяем на пустую."
Предлагаю сразу ставить нужный спрайт в первом проходе.
И также вынести в константы темплейты для string.Format и использовать уже их в рантайме
Угадаю что это за движок, не заглядывая в тэги.