Андрей

Unity 5 asset bundle dependency (Зависимости в Unity 5 при построении Asset Bundle)

В документации по новой системе ассет-бандлов Unity 5 есть один огрех. Флаг pushassetdependencies  помечен как устаревший. Но нигде в документации не написано, как же теперь будут работать зависимости в бандлах. Рассмотрим кейс… Есть объект, например ДОМ1. Он использует материал с атласом. Также этот атлас используется для объекта ДОМ2 (прости, Господи). Вопрос: что будет с атласом, если мы хотим поместить дом1 и дом2 в разные бандлы? Будет ли помещен общий атлас в каждый бандл или нет? Для мобильных приложений ответ на этот вопрос очень критичен, ведь дублировать данные — верный путь к проблеме с местом. Ответ был найден в основной теме по нововведениям Unity 5 вот по этой ссылке. Также, более понятно написано тут. Ну а своими словами я отвечу так: атлас необходимо поместить в свой собственный бандл. Тогда система при построении бандлов в манифестах бандлов дома1 и дома2 укажет зависимость от бандла атласа. ПЕРЕД загрузкой бандлов дом1 и дом2, НУЖНО загрузить бандл с атласом, тогда все будет работать так, как мы хотим. Вот пример из моей практики: в бандлах хранится оружие. Бандлов с оружием много. Но у каждого оружия есть эффекты. Эффект выносим в отдельный бандл, в начале игры грузим его и можно смело грузить динамически бандлы с оружием, с изрядной экономией ресурсов.

Update: Очень важное замечание… Нельзя просто так, взять и добавить префаб1 в ассетбандл и использовать его в другом префабе2, который мы хотим поместить в свой собственный ассетбандл. Важно добавить все АССЕТЫ (материалы, текстуры и т.п.), которые использует префаб1 в его ассетбандл (указать ассет-бандл не только для префаба, но и для всех ассетов из которых он состоит) и только тогда, при построении ассет-бандла для префаба2 будут расставлены зависимости и размер ассет-бандла2 будет минимальным.

Update 2: Нашел классную статью, которая многое проясняет!

Update 3: Нашел еще одну статью, которая пишет прям совсем не то, что написал я 🙂 Вот по этой ссылке в сексии подводных камней пишут что будет дублирование. Но я свой вариант проверял опытным путем, так что все пучком…