16 июля 2023
2 минуты

Разработка: addressables

Unity предоставляет несколько способов хранения контента:

- Общая папка Assets, из которой в билд уходят используемые на сценах компоненты.

- Папка Resources, которая билдится в игру целиком, а объекты подгружаются запросом по имени и типу контента.

- Папка StreamingAssets, в которой контент никак не пакуется и отдаётся в чистом девственном виде - как есть (пока не знаю примеров его использования, но думаю на тему использования для сейвов, в жёстко закэшированной папке)

- Addressables, которые пакуются в самостоятельные бандлы и позволяют подгружать этот контент даже по сети.

В первом случае, я храню всё что используется для интерфейса игры.

От второго - я сейчас всеми правдами и неправдами избавляюсь. Проблема в том, что эта папка билдится очень тяжёлой. Обращение по именам - это опасно, потому что я могу изменить структуру папок или названия файлов. И код придётся переписывать. А если поместить эти объекты прямо в поля объектов на сцене или в используемые Scriptable objects, все компоненты тут же потянутся в оперативку при загрузке сцены. Это замедляет загрузку игры, а так же вынуждает потреблять оперативную память для редко используемых комполнентов.

Ещё один нюанс такого решения - это сборка из большого и тяжёлого моно файла, что является большой проблемой для веба и мобайла. Они обычно ограничены 25Мб на один файл. В будущем я планирую порт, да и сборка в вебе, которую тут же можно дать потыкать с планшета - это безумно удобно и хорошо работает на конверсию вовлечённой аудитории.

Последний вариант с адрессеблами позволяет разбить большой файл на небольшие бандлы, вес которых я могу контролировать. Кроме того, можно хранить прямые ссылки в объектах, но контент не будет сразу подгружаться в игру, если те размещены на сцене. Подгрузка происходит только по прямому запросу из кода.

Я уже организовала новую структуру и логику хранения изображений для персонажей, а так же способы их отрисовки. Ресёрч и работа заняли меньше недели, но у меня появились новые проблемы, которые подводят к отказу от базового аниматора из коробки.

Подробнее расскажу в следующей статье.

Бесплатный
Комментарии
Здесь будут комментарии к публикации