Оглавление
Данная библиотека предоставляет набор интерфейсов и классов для управления ресурсами. Она позволяет создавать группы ресурсов, загружать и выгружать их, а также предоставляет асинхронную загрузку с обратной связью о прогрессе.
- Однородный API для загрузки ассетов из различных источников;
- Поддержка различных типов ассетов;
- Предоставление информации о прогрессе загрузки;
- Расширяемость.
Добавьте файл .dll из последнего релиза в свой проект.
Добавьте Depra.Assets
в свой проект с помощью NuGet.
Интерфейс, представляющий базовую информацию о файле ресурса.
Ident
: Идентификатор ресурса.Size
: Размер файла ресурса.
Интерфейс, предоставляющий методы для загрузки и выгрузки ресурса.
IsLoaded
: Возвращаетtrue
, если ресурс загружен, иначеfalse
.Load()
: Загружает ресурс синхронно.Unload()
: Выгружает ресурс.LoadAsync(onProgress, cancellationToken)
: Загружает ресурс асинхронно с обратной связью о прогрессе.
Интерфейс для идентификатора ресурса.
Uri
: Абсолютный URI ресурса.RelativeUri
: Относительный URI ресурса.
Класс, представляющий имя ресурса.
Name
: Имя ресурса.Uri
: Абсолютный URI ресурса.RelativeUri
: Относительный URI ресурса.
Класс для управления группой ресурсов.
Name
: Имя группы ресурсов.Ident
: Идентификатор группы ресурсов.Size
: Общий размер группы ресурсов.IsLoaded
: Возвращаетtrue
, если все ресурсы в группе загружены.Children
: Коллекция дочерних ресурсов в группе.AddAsset(asset)
: Добавляет ресурс в группу.Load()
: Загружает все ресурсы в группе синхронно.LoadAsync(onProgress, cancellationToken)
: Загружает все ресурсы в группе асинхронно с обратной связью о прогрессе.Unload()
: Выгружает все ресурсы в группе.GetEnumerator()
: Возвращает перечислитель дочерних ресурсов.
// Пример создания группы ресурсов.
var groupName = new AssetName("textures");
var assetGroup = new AssetGroup<Texture>(groupName);
// Добавление ресурсов в группу.
assetGroup.AddAsset(new TextureAsset("texture1.png"));
assetGroup.AddAsset(new TextureAsset("texture2.png"));
// Загрузка ресурсов группы.
assetGroup.Load();
// Итерация по загруженным ресурсам.
foreach (var texture in assetGroup)
{
// Использование загруженных текстур.
}
// Выгрузка ресурсов группы.
assetGroup.Unload();
// Асинхронная загрузка ресурсов группы.
await assetGroup.LoadAsync(
onProgress: (progress) =>
{
// Обратная связь о прогрессе загрузки.
},
cancellationToken: default
);
assetGroup.Unload();
Я независимый разработчик, и большая часть разработки этого проекта выполняется в свободное время. Если вы заинтересованы в сотрудничестве или найме меня для проекта, ознакомьтесь с моим портфолио и свяжитесь со мной!
Этот проект распространяется под лицензией Apache-2.0
Copyright (c) 2023 Николай Мельников [email protected]