Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Почему просто не закачивать в фоне ресурсы и не складывать их в папку пользовательских данных
Архивация для уменьшения времени загрузки тоже звучит странно — какая разница, если данные едут в фоне и будут доступны только при следующем запуске приложений и только в случае успешной докачки?
Как я уже писал в статье, если вам не нужно использовать нативные файлы Unity, вы можете не использовать AssetBundle. В нашей ситуации мы были вынуждены его использовать.
Единственный минус — придется придумать свои форматы для всего, чтобы можно было быстро загружать из локальных файлов
О перезапуске приложения я ничего не писал.
Во-вторых, есть большая разница закачивать 200 мб или 60 мб. Особенно на 3G интернете.
Т.е. реализовать кастомную сериализацию для «нейтивных» файлов юнити с последующей десериализацией в рантайме любым удобным способом (хоть в параллельном потоке с синком в главный только в момент готовности данных).
Сейчас игрушки под ретину начинают весить до 1.5-2Гб + апдейты к ним. Несчастные 200Мб вообще ни о чем.
Но более правильной политикой было бы предлагать юзверу самому решить — качать DLC на текущем коннекте или нет + опцию в настройках.
Нет точных гарантии, что asset будет корректно сериализровться и десериализроваться. К тому же даже если этот механизм будет работать идеально, мы имеет дополнительные затраты на конвертацию ассетов в «наш формат», и затем обратную конвертацию в ассет. А также это потенциально новые баги в багобазе.
В нашем варианте AssetBundle берет на себя часть задач и гарантирует целостность данных внутри. Все таки решение с бандлом мне видится более надежным.
А также это потенциально новые баги в багобазе.
Реализация системы динамически загружаемого контента (DLC) для мобильной игры в Unity 3D