Unity AssetBundles, подгружаем контент

Unity AssetBundles, подгружаем контент

@nrjwof_live

Навигация

Уроки, трюки по Unity

  1. Динамический инспектор
  2. AssetBundles, подгрузка контента
  3. Unity, разрабатываем свой компонент
  4. Unity — Динамическое освещение в 2D
  5. Unity и телеграм
  6. Unity — автогенерация Enum

Стартуем

Сегодня мы будем подгружать подготовленный контент в нашу игру. 

Для чего?

  1. Обойти ограничения в мобильных сторах на размер билда
  2. Подгружать данные только по мере необходимости
  3. Обновлять приложение незаметно для игрока
Ранее, AssetBundles были доступны только владельцем pro аккаунтов unity, теперь такую вещь может использовать каждый

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

Создаем папочки

Алгоритм действий такой :

  1. Отмечаем файлы, которые будут включены в банды
  2. Создаем бандл
  3. Подгружаем бандл и используем его ресурсы

Подготовка

Для начала перенесем пару файлов в проект. Я воспользуюсь ассетами на сайте kenney.nl и загружу пару картинок в проект. Далее нужно задать этим картинкам, к какому бандлу они принадлежат.

Переносим изображения в проект
Создаем новый bundle с именем mybundle

Далее официальные гайды по unity предлагают создать небольшой скрипт, который создаст сам AssetBundle. Стоит обратить внимание, что bundle создается для конкретной платформы, за это отвечает BuildTarget.

Создаем скрипт CreateBundle.cs, создаем папку Editor и кладем скрипт в нее.

Скрипт создет bundle для Андроида

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

Теперь воспользуемся нашим скриптом и создадим файл с нашими утками внутри.

Запускаем скрипт
Видим появившиеся файлы в папке AssetBundles
В файле mybundle можно посмотреть пути до наших уток

Загружаем файлы в проект

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

Создадим файл Main.cs, добавим его на сцену. Файл mybundle я залил на сервер, откуда и буду его загружать

Main.cs

После запуска игры мы увидим такую картину

Log

А значит все прошло успешно. Перейдем к использованию наших файлов.

Использование

Напишем функцию, которая добавит уток на сцену после загрузки.

Ф-ия проходится по всем путям и добавляет их в качестве sprite

Вызовем ф-ию сразу после успешной загрузки

Теперь при старте игры мы увидим такую картину

Результат

На этом все, вы также можете хранить звуки, префабы, текстуры, даже сцены.

Исходник тут

Если вам понравился урок, вы можете поддержать меня рублем через написанного нами донат бота, а также подписавшись на мой канал. Любое из этих действий ускорит выход новых уроков и поднимет мне настроение :)
@nrjwolf


Report Page