Как сделать подгрузку файлов игры с сервера при запуске на андроид?

150
12 июня 2019, 04:20

Дайте пожалуйста направление как загружать файлы с сервера при запуске игры, чтобы в будущем можно было добавлять/менять фон, музыку и т.д.

Answer 1

Вопрос вполне корректный, и, даже, очень хороший.

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

Но иногда нужно доступ к файлам через pathname. Например: проигрывание видео на iOS осуществимо только по path. Или, скажем, подкачка новых ресурсов из интернета и подгрузка их в рантайме. Это возможно при помощи Streaming Assets.

Как пользоватся этим -- в мануале по линке. Копай в эту сторону.

Если грубо и коротко:

  1. Создаешь папку в проекте StreamingAssets
  2. Учишься обращаться к файлам которые лежат в этой папке (обращение осуществляется по конкретному пути, а не так как обычно в unity)
  3. При помощи http запроса сохраняешь файл туда, например, zip папку с нужными ресурсами в правильной структуре, разархивируешь в эту же папку и обращаешься к ресурсам в рантайме

Так же нужно иметь ввиду, что стандартные ресурсы они конвертируются в "стандартные форматы" для юнити. Так же нужно иметь ввиду что если не подготовить ресурс, он будет медленнее работать т.к. юнити будет конвертировать ресурсы "на лету". Например сжимать текстуры.

Так же, пожалуста, заплюсуйте ответ KingPeas.Он дополнил ответ очень хорошим путем -- Asset Bundle. Думаю, даже лучшим чем сначала вспомнил я :)

Они созданы именно для того, что бы подготовить и упростить загрузку (т.к. все ресурсы нужные можно в 1 файл закинуть и, например, текстуры сразу пережимаются юнити, а не на лету это делается, как в случае со Streaming Assets.)

Answer 2

Посмотрите в сторону AssetBundles - это встроенный механизм от Unity для закачки контента отдельными пакетами. Это позволит добавлять контент порционно) Например подгружать контент от моделей до новых сцен.

READ ALSO
Найти последний самый акутальный файл в списке

Найти последний самый акутальный файл в списке

Никак не могу представить в головке функцию, которая бы обходила файлы сравнивая их имена с DateTimeNow

115
SQL группировка по двум полям с условием

SQL группировка по двум полям с условием

помогите составить правильный sql запрос с условием для таблицы статистики посещения к примеру есть таблица

125