Заметка про шрифты и размер билда в Unity

📃 Любопытный материал по использованию встроенных в ОС шрифтов для уменьшения размеров билда в Unity.
Мне подобными "извращениями" заниматься не доводилось, но на вооружение подход взял.

📦 Обычно всё решается тем, что для конкретной локализации создаётся отдельный бандл, куда падают шрифты и прочий локализируемый контент.
🌐Этот бандл отправляется на CDN и скачивается клиентом по востребованию.
⬇ При первом запуске стягивает тот, который соответствует установленным в ОС настройкам. И может быть какой дополнительный набор следом
🙎‍♂А далее уже по желанию пользователя. Такие бандлы часто достаточно маленькие и очень оперативно загружаются.
Если использовать Unity Localization, то та довольно ловко эксплуатирует Addressables, и там всё упаковать в отдельный бандл "сами юнитехи велели".

🙅‍♂ Для ситуации, когда приложение ничего не должно догружать, бандлы не подойдут.
🤏 И если нужно, чтобы приложение было наиболее "компактным", то описанные махинации могут оказаться очень кстати.
🤔 Хотя представить себе такой реальный кейс у меня пока не получается.

————————————————————

1 комментарий

Кейс простой - сделать GP Instant приложение, помещающееся в 20 МБ. Например, какой-нибудь AR Viewer. Значит нам нужна AR библиотека, какой-нибудь видео-аудио проигрыватель, потому что встроенный плохо работает с рандомными пользовательскими файлами, GLTF библиотека, модельки грузить. Конечно никакие Unity Localization, Addressables использовать не получится. TextMeshPro тоже не влезает. Все что зависимо от Newtonsoft.Json не подходит. После всех оптимизаций последними под нож идут шейдеры (их к сожалению в бандль не вынести) и шрифты. Хорошо, если системного шрифта достаточно, но если грузить какой-то набор шрифтов, то докачивать на старте в локальный кэш.

1