Выбор правильной технологии загрузки активов во время выполнения для проектов RT3D

Apr 25, 2025
Модель заводского этажа в Unity Asset Manager с использованием потоковой передачи 3D-данных

Проекты в реальном времени 3D (RT3D) становятся все более сложными, требуя более умных подходов к менеджеру активов и загрузке во время выполнения. Разработчики постоянно раздвигают границы возможного, и по мере роста сложности и объема этих проектов обеспечение плавной работы и исключительного пользовательского опыта становится более критичным, чем когда-либо. Хотя Unity Asset Manager предоставляет комплексное решение для организации, управления и оптимизации ваших активов, разработчики все еще сталкиваются с задачей выбора правильной технологии для загрузки активов в среду выполнения.

Независимо от того, стримите ли вы контент из сети доставки контента (CDN), загружаете ли локальные активы динамически или управляете памятью через циклы загрузки/разгрузки, выбор правильной технологии загрузки активов имеет решающее значение для успеха вашего проекта.

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

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

Загрузка активов во время выполнения относится к тому, как ваше приложение загружает и выгружает контент во время работы. Это может означать:

  • Загрузка нового контента из CDN
  • Загрузка локальных активов по запросу
  • Управление памятью путем выгрузки неиспользуемого контента
  • Постепенная потоковая передача полигонов

Давайте рассмотрим различные технологии загрузки активов и некоторые примеры проектов RT3D, которые лучше всего подходят для каждой технологии.

Понимание ваших вариантов

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

  1. AssetBundles/Addressables
  2. Создано специально для проектов Unity
  3. Обрабатывает все типы активов Unity
  4. В общем, лучше всего подходит для приложений Unity
  5. где эффективное управление памятью является приоритетом,
  6. где пакеты DLC будут доставляться по воздуху,
  7. и для игр и приложений с живым сервисом с регулярными обновлениями контента (сезонные события, новые персонажи, обновления продуктов)
  8. glTF
  9. Платформенно-агностическое решение, которое не требует вмешательства процесса Unity
  10. Сосредоточено на чистом 3D-контенте
  11. В целом лучше всего подходит для всех приложений во время выполнения, которые требуют гибкой загрузки нативных 3D-данных и требуют совместимости между платформами
  12. 3DDS (Потоковая передача данных Unity 3D)
  13. Платформенно-агностическое решение, которое позволяет визуализировать 3D-модели, такие как данные CAD и BIM
  14. Генерация и визуализация в Unity Asset Manager одним щелчком мыши
  15. Загружает только актуальный контент в наилучшем качестве
  16. В целом лучше всего подходит для визуализации в большом масштабе, где пользователи могут исследовать очень сложные и детализированные модели на любом устройстве с прогрессивной загрузкой.

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

Сделать правильный выбор

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

С помощью AssetBundles вы можете создать приложение с одной почти пустой сценой и загружать остальную часть вашей игры динамически оттуда.

С помощью AssetBundles вы можете создать приложение с почти пустой сценой и загружать остальную часть вашей игры или приложения динамически оттуда.

AssetBundles и Addressables

Пакет Addressables — это система, родная для Unity, предназначенная для:

  • Упрощения загрузки ресурсов во время выполнения.
  • Включает отслеживание зависимостей, версионирование контента, несколько путей загрузки (локальный/удаленный), сетевую доставку и кэширование.

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

  • Поддержка нескольких типов ресурсов, так как они работают с любым типом ресурса, включая текстуры, звуки, сцены, префабы и многое другое.
  • Управление зависимостями, так как Unity разрешает зависимости между ресурсами.
  • Управление версиями
  • С Addressables вы получаете каталог, который отслеживает версии ресурсов и их зависимости, так что, когда вы обновляете контент, система может точно определить, какие пакеты нужно повторно загрузить.
  • Это особенно полезно для живых игр, где вы хотите отправлять обновления контента (например, сезонные пакеты или живые события) без принуждения игроков загружать всю игру снова.
  • Оптимизировано для Unity, специфично для платформы

Идеальный случай использования:

Игра на Unity с необходимостью эффективного управления памятью и временем загрузки, с несколькими типами ресурсов и/или с регулярными обновлениями контента. Оптимизированные ресурсы не нужно делить между разными средами выполнения.

Почему это работает: Вы можете загружать контент по запросу через «адрес» ресурса или через AssetReference, и система Addressables автоматически обработает остальное для вас, независимо от того, кэширован ли этот контент на устройстве или все еще размещен удаленно на вашем CDN. Время выполнения может загружать новые пакеты контента без необходимости полного обновления приложения. Конечные пользователи получают новый сезонный контент, сохраняя производительность и эффективно управляя памятью.

Пакет Unity glTFast (com.unity.cloud.gltfast) поддерживает импорт и экспорт файлов glTF™ 3D как во время выполнения, так и в редакторе.

Пакет Unity glTFast (com.unity.cloud.gltfast) поддерживает импорт и экспорт файлов glTF™ 3D как во время выполнения, так и в редакторе.

загрузка glTF

glTF и .GLB по сути являются одним и тем же форматом, упакованным по-разному - glTF является текстовым форматом с отдельными файлами (текстуры, двоичные данные и т. д.), что делает его отличным для разработки и отладки, в то время как GLB объединяет все в один двоичный файл, что делает его более эффективным для распространения и загрузки во время выполнения.

glTF предоставляет упрощенное решение для загрузки 3D моделей с использованием бесплатного пакета glTFast от Unity. Рассмотрите этот вариант, когда вам нужно:

  • Простая загрузка 3D моделей
  • С GLB зависимости должны быть встроены в файл при экспорте или разрешены вручную.
  • Кроссплатформенная совместимость
  • Быстрая реализация
  • Поддержка стандартного формата, не зависящая от версии Unity или платформы.

Идеальный случай использования:

Простое приложение для просмотра моделей, где быстрая загрузка и поддержка стандартного формата являются приоритетами. Если вам нужно повторно использовать актив в разных проектах RT3D, не перекомпилируя их, GLB - это правильный выбор. Конкретный пример - это приложение электронной коммерции, где один просмотрщик может просматривать тысячи активов.

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

Почему это работает: GLB - это 3D формат веба. Данные GLB доступны на многих точках взаимодействия.

 Модель заводского этажа в Unity Asset Manager, переданная с использованием 3DDS

Используйте потоковую передачу данных Unity 3D, чтобы динамически загружать только соответствующие части модели и делать их видимыми на любом устройстве, независимо от размера модели.

3DDS (Unity 3D потоковая передача данных)

Потоковая передача данных Unity 3D — это сервис потоковой передачи полигонов, который позволяет разработчикам передавать 3D статические активы и окружения непосредственно на устройства пользователей. Данные предварительно обрабатываются в Unity Asset Manager с использованием технологии Pixyz, чтобы автоматически оптимизировать их распределение в приложении во время выполнения. Загрузка во время выполнения также обрабатывается технологией gltFast от Unity.

В вашем клиенте пакет потоковой передачи данных 3D позволяет загружать модель, реализуя готовые оптимизации, уменьшая объем памяти модели дальше от камеры, при этом обеспечивая полную детализацию вблизи.

3DDS отлично справляется с обработкой моделей большого масштаба и сложных визуализаций, сохраняя все метаданные частей вашей модели. Это предпочтительный выбор для:

  • Больших CAD и BIM моделей
  • Мгновенный первый пиксель
  • Требования к прогрессивной загрузке
  • Единственный источник активов / несколько целевых платформ
  • Оптимизированная по памяти загрузка для целевого устройства
  • Навигация и изучение сложных иерархий моделей

Идеальный случай использования:

VR-прогулка по вашим моделям, которые вы никогда не могли отобразить в приложении во время выполнения.

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

Принятие вашего решения

Если вы разрабатываете игру с помощью Unity, Addressables обычно является рекомендуемым решением. Вот почему:

  • Создано специально для рабочего процесса разработки Unity
  • Оптимизировано для производительности во время выполнения
  • Интегрировано с управлением памятью Unity
  • Поддерживает сложные зависимости активов
  • Эффективно обрабатывает несколько типов активов

Исключительный случай: Контент, созданный пользователями Если ваша игра включает контент, созданный пользователями (например, пользовательские аватары или предметы), рассмотрите GLB:

  • Стандартный формат делает создание контента более доступным
  • Лучшая долгосрочная совместимость между версиями Unity
  • Упрощенная интеграция сторонних решений (например, аватары ReadyPlayerMe)

Исключительный случай: Игра на основе Системы компонентов сущностей (ECS) Unity. Если вы используете архитектуру ECS Unity, вам следует использовать систему управления контентом Entities для управления активами во время выполнения.

Для промышленных проектов выбор зависит больше от конкретных требований.

Выберите GLB, когда:

  • Работаете со стандартными 3D моделями
  • Необходима кроссплатформенная совместимость
  • Обрабатываете контент, загруженный пользователями
  • Нужны обновления, независимые от платформы
  • Требуется долгосрочная стабильность формата

Выберите 3DDS, когда:

  • Работаете с большими CAD/BIM моделями
  • Прогрессивная загрузка необходима
  • Оптимизация памяти требуется
  • Сохранение сложных иерархий и метаданных является приоритетом
  • Необходима динамическая настройка качества
Технический художник загружает актив вилочного погрузчика в Unity Asset Manager

Начните работу с Asset Manager

Unity Asset Manager помогает вам организовать и подготовить ваши активы перед выполнением, создавая эффективный процесс для любой стратегии загрузки, которую вы выберете. Интегрированный с Unity Editor и решением Unity для подготовки данных, Pixyz, Asset Manager может:

  • Централизовать ваши исходные активы от создания, итерации до финального состояния
  • Преобразовать и подготовить активы для развертывания во время выполнения
  • Эффективно организовать активы в вашем рабочем процессе Unity Editor
  • Конвертировать между различными форматами активов
  • Действовать как репозиторий файлов реального времени 3D, которые могут быть использованы во время выполнения

По мере роста вашего проекта, Asset Manager масштабируется вместе с вашей лицензией Unity Editor, чтобы предоставить дополнительные возможности хранения и управления.

Будь то подготовка активов для Asset Bundles, генерация файлов glTF или настройка потоковой передачи 3DDS, Unity Asset Manager помогает вам поддерживать организацию и контроль в процессе разработки.


Unity Asset Manager может напрямую передавать данные в приложения во время выполнения. Как только данные gLTF и 3DDS сгенерированы, их можно мгновенно просмотреть во время выполнения, без времени сборки. Это сокращает путь промышленных клиентов для переноса их CAD и BIM данных непосредственно в приложения Unity.

Скриншот активов офисной мебели для цифрового двойника офиса в Unity Asset Manager

Подробнее

Если вы хотите узнать больше о решениях Unity Asset Manager, ознакомьтесь с этими ресурсами:

Есть вопросы?

Поделитесь своим опытом и вопросами о загрузке активов в Unity. Присоединяйтесь к нам на Unity Discussions.

Начните работу с Unity Asset Manager

Читать книгу

Заполните эту форму, чтобы получить доступ к передовым идеям и решениям от экспертов отрасли