Об этом проекте

bevy_asset_loader — это плагин для игрового движка Bevy, который упрощает и организует загрузку игровых ресурсов. Он вводит выводимый трейт `AssetCollection`, позволяющий разработчикам группировать связанные ресурсы в структуры, которые затем становятся доступны как ресурсы Bevy ECS после полной загрузки. Основная функция плагина — система состояний загрузки. Разработчики могут настроить состояние Bevy, выделенное для загрузки ресурсов, указать, какие коллекции ресурсов загружать, и определить следующее состояние для перехода после завершения загрузки. Состояние загрузки гарантирует, что все дескрипторы ресурсов полностью загружены до начала следующего состояния. Поддерживаемые типы полей ресурсов включают: - Отдельные поля `Handle<T>`, загружаемые из пути к файлу (аудио, изображения и т. д.) - Макеты текстурных атласов с настраиваемым размером плитки, столбцами, строками и отступами - Изображения с пользовательскими конфигурациями сэмплера (режим фильтрации, режим обёртывания) - Массивные текстуры с настраиваемым количеством слоёв - Стандартные материалы (при включённой функции 3d) - Папки, загружаемые как `Vec<UntypedHandle>` или типизированные векторы - Списки путей для совместимого с вебом сбора ресурсов - Коллекции, загружаемые как HashMap с использованием трейта MapKey Поддерживаются два режима конфигурации ресурсов: Ресурсы времени компиляции используют атрибуты макроса derive непосредственно в коде. Пути и параметры жёстко закодированы, что требует перекомпиляции при изменениях. Динамические ресурсы используют атрибут `key` вместо `path`, что позволяет хранить конфигурации в файлах `.assets.ron`. Это отделяет данные ресурсов от кода, снижает частоту перекомпиляции и упрощает управление ресурсами для не-программистов. Функция `standard_dynamic_assets` включает загрузку RON-файлов для динамических ресурсов. Дополнительные возможности включают: - Интеграция отслеживания прогресса с крейтом iyes_progress для поддержки индикатора загрузки - Настройка состояния сбоя для корректной обработки отсутствующих или незагруженных ресурсов - `finally_init_resource` для инициализации ресурсов FromWorld после загрузки коллекций ресурсов - Прямая инициализация без состояния загрузки через `init_collection` - Выгрузка ресурсов путём удаления ресурсов AssetCollection, когда они больше не нужны Крейт распространяется под двойной лицензией Apache-2.0 и MIT и поддерживает совместимость с несколькими версиями Bevy, имея выделенную ветку, отслеживающую основную ветку разработки Bevy.