Loading Resources at Runtime
Unity Manual > Advanced > Loading Resources at Runtime

Loading Resources at Runtime

Существует много ситуаций, когда нужно включить ресурсы в уже готовую игру. Это может быть и автономный и веб-плеер. Иногда нужно снизить размер веб-плеера за счёт динамически загружающихся отдельных объектов. В других случаях нужно реализовать загружаемый контент: окружение, оружие, персонажи, иногда целые уровни.

Unity Pro предлагает два пути решения задачи: связки ресурсов (Asset Bundles) и папки ресурсов (Resource Folders). Unity Indie позволяет пользоваться только папками ресурсов.

Asset Bundles (Unity Pro-only)

Связка ресурсов — это внешняя коллекция ресурсов. Она хранится за пределами плеера, на веб-сервере и доступна пользователю динамически.

Для создания связки ресурсов, нужно вызвать из скрипта функцию BuildPipeline.BuildAssetBundle(). В аргументах указывается массив объектов, включаемых в файл связки, а также некторые опции. Будет создан файл, который затем можно будет динамически включить в игру, используя AssetBundle.Load().

Resource Folders (Indie and Pro)

Папки ресурсов — коллеции ресурсов, включённых в сборку плеера, но могущих быть не связанными с какими-либо объектами в Inspector.

Чтобы использовать папки ресурсов, создайте новую папку в Projec View и назвовите её «Resources». Можно создавать много таких папок. Чтобы загрузить ресурс из папки, вызовите Resources.Load().

Если речь идёт о потоковом веб-плеере, вы можете определить, какая сцена будет включать все ваши папки ресурсов. Это можно сделать в Edit>Project Settings>Player. Параметр First Streamed Level With Resources.