reckfellENGINE

ResourceFormatLoader

Обработчик чтения собственного формата ресурсов.

На этой странице
class ResourceFormatLoaderReckfellSharpНаследует RefCounted

Реализуйте подкласс C# с _GetRecognizedExtensions, _HandlesType, _GetResourceType и _Load. Зарегистрируйте экземпляр через ResourceLoader.AddResourceFormatLoader до первого Load и снимите регистрацию до Dispose. Конструктор сам обработчик не регистрирует.

Методы с подчёркиванием — callbacks движка. Описанные стандартные проверки относятся к нативному вызову при отсутствии переопределения. Для обычного чтения используйте ResourceLoader.Load, а не прямой вызов callback.

_Load возвращает Resource либо целочисленный Error внутри Variant. Проверка пути выбирает обработчик, но не проверяет данные. Зависимости, UID, потокобезопасность и режимы кеша требуют отдельного решения, если формат их использует.

собственный формат ресурсов: полный исполняемый пример C#.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы1

ResourceFormatLoaderКонструктор
# ResourceFormatLoader
C#
public ResourceFormatLoader();

Создаёт незарегистрированный обработчик. Реализуйте подкласс с callbacks и добавьте экземпляр в ResourceLoader до первого чтения.

Методы11

_Existsbool
# _Exists
C#
public virtual bool _Exists(string path);

Проверяет существование ресурса. Без переопределения нативный обработчик использует FileAccess. Наличие файла не означает, что его содержимое корректно или последующее чтение успешно.

Параметры
ИмяТипПо умолчанию
pathstring—
path

Путь файла собственного формата: логический asset:// или user:// согласно месту хранения.

Возвращает bool

true, если обработчик считает ресурс существующим; это не гарантия корректного чтения.

_GetClassesUsedstring[]
# _GetClassesUsed
C#
public virtual string[] _GetClassesUsed(string path);

Сообщает имена классов, используемых содержимым файла. Без переопределения нативный обработчик добавляет непустой результат определения базового типа ресурса. Не возвращайте экземпляры объектов.

Параметры
ИмяТипПо умолчанию
pathstring—
path

Путь файла собственного формата: логический asset:// или user:// согласно месту хранения.

Возвращает string[]

Массив строковых имён классов; пустой массив, если классы не перечисляются.

_GetDependenciesstring[]
# _GetDependencies
C#
public virtual string[] _GetDependencies(string path, bool addTypes);

Перечисляет внешние ссылки файла. Каждая запись имеет вид путь либо uid::тип::резервный_путь; секция типа пустая при addTypes=false. Концевые пустые секции опускаются. Перечисление само не загружает зависимости и не переписывает файл.

Параметры
ИмяТипПо умолчанию
pathstring—
addTypesbool—
path

Путь файла собственного формата: логический asset:// или user:// согласно месту хранения.

addTypes

true добавляет имя базового типа после первого ::. Для скриптового ресурса без отдельного нативного типа подходит Resource.

Возвращает string[]

Массив записей зависимостей. Без типа, но с UID и резервным путём: uid://...::::asset://data/item.rdata.

_GetRecognizedExtensionsstring[]
# _GetRecognizedExtensions
C#
public virtual string[] _GetRecognizedExtensions();

Перечисляет расширения файлов, которые читает обработчик, например rfnote без точки. Это сведения для выбора загрузчика, а не проверка содержимого каждого файла.

Возвращает string[]

Массив расширений без точки; пустой массив не предоставляет расширений для стандартного выбора.

_GetResourceScriptClassstring
# _GetResourceScriptClass
C#
public virtual string _GetResourceScriptClass(string path);

Сообщает имя именованного скриптового класса ресурса отдельно от его встроенного базового типа. Метод не регистрирует класс и не создаёт объект.

Параметры
ИмяТипПо умолчанию
pathstring—
path

Путь файла собственного формата: логический asset:// или user:// согласно месту хранения.

Возвращает string

Имя именованного скриптового класса либо пустая строка, если такого имени нет или формат его не сообщает.

_GetResourceTypestring
# _GetResourceType
C#
public virtual string _GetResourceType(string path);

Определяет встроенный тип ресурса для пути. Для поддерживаемого собственного C# ресурса можно вернуть Resource. Название C# класса само по себе не становится нативным типом ClassDB.

Параметры
ИмяТипПо умолчанию
pathstring—
path

Путь файла собственного формата: логический asset:// или user:// согласно месту хранения.

Возвращает string

Имя поддерживаемого встроенного типа или пустая строка, если путь не распознан.

_GetResourceUidlong
# _GetResourceUid
C#
public virtual long _GetResourceUid(string path);

Читает устойчивый UID из собственного формата. Сам факт переопределения включает собственную поддержку UID: не добавляйте заглушку -1, если нужен стандартный .uid. Без переопределения нативный обработчик читает соседний файл path + .uid; создание этого файла относится к редакторскому процессу, не к данному чтению.

Параметры
ИмяТипПо умолчанию
pathstring—
path

Путь файла собственного формата: логический asset:// или user:// согласно месту хранения.

Возвращает long

Числовой UID либо -1, если корректный идентификатор отсутствует. Это не путь файла.

_HandlesTypebool
# _HandlesType
C#
public virtual bool _HandlesType(StringName type);

Сообщает поддержку базового типа. Стандартная нативная проверка пути использует этот callback при непустой подсказке типа. Без переопределения поддержка типа не заявляется.

Параметры
ИмяТипПо умолчанию
typeStringName—
type

Подсказка встроенного типа, например Resource. Явно обработайте все поддерживаемые типы.

Возвращает bool

true для поддерживаемого типа; false позволяет пропустить обработчик при соответствующей подсказке.

_LoadVariant
# _Load
C#
public virtual Variant _Load(string path, string originalPath, bool useSubThreads, int cacheMode);

Читает и проверяет файл после выбора обработчика. При успехе верните Resource внутри Variant; при отказе — целочисленный Error. Error.Ok вместо объекта не означает успех: любое целое трактуется как код ошибки и не возвращает ресурс. Ограничивайте размеры до выделения памяти.

Параметры
ИмяТипПо умолчанию
pathstring—
originalPathstring—
useSubThreadsbool—
cacheModeint—
path

Фактический путь для чтения после маршрутизации ресурса. Не подменяйте его безусловно originalPath.

originalPath

Исходный логический путь до перенаправления/импорта. Может отличаться от path; это контекст ресурса, не команда читать исходный ассет.

useSubThreads

Разрешение использовать дополнительные потоки. true само не запускает их для вашего кода и не делает обработчик потокобезопасным.

cacheMode

Числовое значение ResourceFormatLoader.CacheMode. Согласуйте с ним загрузку зависимостей и обновление данных своего формата.

Возвращает Variant

Variant с Resource при успехе или целым Error при отказе. Пустой Variant не создаёт ресурс и не заменяет полезный код ошибки.

_RecognizePathbool
# _RecognizePath
C#
public virtual bool _RecognizePath(string path, StringName type);

Определяет, подходит ли обработчик пути и подсказке типа. Без переопределения нативная реализация сопоставляет суффикс без учёта регистра с расширениями и при непустом type использует _HandlesType, а не _GetResourceType. Собственное переопределение заменяет эту проверку.

Параметры
ИмяТипПо умолчанию
pathstring—
typeStringName—
path

Путь файла собственного формата: логический asset:// или user:// согласно месту хранения.

type

Необязательная подсказка встроенного типа, например Resource. Пустая строка не ограничивает тип при стандартном выборе по пути.

Возвращает bool

true, если путь подходит формату. Это выбор обработчика, не проверка содержимого или прав доступа.

_RenameDependenciesError
# _RenameDependencies
C#
public virtual Error _RenameDependencies(string path, Reckfell.Collections.Dictionary renames);

Переписывает внешние ссылки внутри файла по таблице замен и сохраняет результат. Изменить только переданный Dictionary недостаточно. Без переопределения нативный обработчик возвращает Ok, ничего не переписывая: этот код сам по себе не доказывает исправление ссылок.

Параметры
ИмяТипПо умолчанию
pathstring—
renamesReckfell.Collections.Dictionary—
path

Путь файла собственного формата: логический asset:// или user:// согласно месту хранения.

renames

Dictionary строковых путей: старый путь → новый путь. Замените ссылки в содержимом файла; сама таблица не переименовывает файл.

Возвращает Error

Error.Ok после успешной поддерживаемой операции либо конкретный Error при отказе.

ResourceFormatLoader.CacheMode

ЗначениеОписание
Ignore = 0

Ни основной ресурс (тот, который был запрошен для загрузки), ни какой-либо из его подресурсов не извлекается из кэша и не сохраняется в нем. Зависимости (внешние ресурсы) загружаются с ResourceFormatLoader.CacheMode.Reuse.

IgnoreDeep = 3

Подобно ResourceFormatLoader.CacheMode.Ignore, но распространяется рекурсивно вниз по дереву зависимостей (внешние ресурсы).

Replace = 2

Как ResourceFormatLoader.CacheMode.Reuse, но кэш проверяется для основного ресурса (того, который запрашивается для загрузки), а также для каждого из его подресурсов. Те, которые уже находятся в кэше, пока загруженные и кэшированные типы совпадают, обновляют свои данные из хранилища в уже существующие экземпляры. В противном случае они воссоздаются как совершенно новые объекты.

ReplaceDeep = 4

Подобно ResourceFormatLoader.CacheMode.Replace, но распространяется рекурсивно вниз по дереву зависимостей (внешние ресурсы).

Reuse = 1

Основной ресурс (тот, который был запрошен для загрузки), его подресурсы и его зависимости (внешние ресурсы) извлекаются из кэша, если они присутствуют, а не загружаются. Те, которые не кэшируются, загружаются и затем сохраняются в кэше. Те же правила рекурсивно распространяются вниз по дереву зависимостей (внешние ресурсы).

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.