Разработка: addressables
Unity предоставляет несколько способов хранения контента:
- Общая папка Assets, из которой в билд уходят используемые на сценах компоненты.
- Папка Resources, которая билдится в игру целиком, а объекты подгружаются запросом по имени и типу контента.
- Папка StreamingAssets, в которой контент никак не пакуется и отдаётся в чистом девственном виде - как есть (пока не знаю примеров его использования, но думаю на тему использования для сейвов, в жёстко закэшированной папке)
- Addressables, которые пакуются в самостоятельные бандлы и позволяют подгружать этот контент даже по сети.
В первом случае, я храню всё что используется для интерфейса игры.
От второго - я сейчас всеми правдами и неправдами избавляюсь. Проблема в том, что эта папка билдится очень тяжёлой. Обращение по именам - это опасно, потому что я могу изменить структуру папок или названия файлов. И код придётся переписывать. А если поместить эти объекты прямо в поля объектов на сцене или в используемые Scriptable objects, все компоненты тут же потянутся в оперативку при загрузке сцены. Это замедляет загрузку игры, а так же вынуждает потреблять оперативную память для редко используемых комполнентов.
Ещё один нюанс такого решения - это сборка из большого и тяжёлого моно файла, что является большой проблемой для веба и мобайла. Они обычно ограничены 25Мб на один файл. В будущем я планирую порт, да и сборка в вебе, которую тут же можно дать потыкать с планшета - это безумно удобно и хорошо работает на конверсию вовлечённой аудитории.
Последний вариант с адрессеблами позволяет разбить большой файл на небольшие бандлы, вес которых я могу контролировать. Кроме того, можно хранить прямые ссылки в объектах, но контент не будет сразу подгружаться в игру, если те размещены на сцене. Подгрузка происходит только по прямому запросу из кода.
Я уже организовала новую структуру и логику хранения изображений для персонажей, а так же способы их отрисовки. Ресёрч и работа заняли меньше недели, но у меня появились новые проблемы, которые подводят к отказу от базового аниматора из коробки.
Подробнее расскажу в следующей статье.
0 комментариев