logo
Margot - Tenebrae
Разработчик НЕ игр! Личный блог.
logo Margot - Tenebrae

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

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

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

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

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

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

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

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

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

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

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

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

Предыдущий Следующий
Все посты проекта
0 комментариев

Подарить подписку

Будет создан код, который позволит адресату получить бесплатный для него доступ на определённый уровень подписки.

Оплата за этого пользователя будет списываться с вашей карты вплоть до отмены подписки. Код может быть показан на экране или отправлен по почте вместе с инструкцией.

Будет создан код, который позволит адресату получить сумму на баланс.

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

Добавить карту
0/2048