ClassDB
Реестр нативных классов, наследования и зарегистрированного API.
ClassDB описывает нативные классы текущей сборки и их привязанные члены. Наличие класса, публичность, включённость и создание — разные проверки. Это не дерево экземпляров Entity и не реестр произвольных классов CLR.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Свойства1
SingletonСвойство
public static ClassDBInstance Singleton { get; }Методы32
CanInstantiatebool
public static bool CanInstantiate(StringName @class);Проверяет возможность создания класса через ClassDB в текущем контексте. Абстрактный DocsNativeProbe зарегистрирован, но проверка возвращает false. Это не фабрика и не проверка готовности игрового объекта.
| Имя | Тип | По умолчанию |
|---|---|---|
class | StringName | — |
classЗарегистрированное имя класса; для неизвестного имени сначала используйте ClassExists.
booltrue, если создание разрешено; false для проверенного абстрактного класса. Неизвестный класс также сообщает ошибку и даёт false.
ClassCallStatic2 перегрузки
public static Variant ClassCallStatic(StringName @class, StringName method, params Variant[] args);Вызывает статический метод класса.
| Имя | Тип | По умолчанию |
|---|---|---|
class | StringName | — |
method | StringName | — |
args | Variant[] | — |
Variantpublic static Variant ClassCallStatic(StringName @class, StringName method, ReadOnlySpan<Variant> args);Вызывает статический метод класса.
| Имя | Тип | По умолчанию |
|---|---|---|
class | StringName | — |
method | StringName | — |
args | ReadOnlySpan<Variant> | — |
VariantClassExistsbool
public static bool ClassExists(StringName @class);Проверяет регистрацию имени нативного класса. Загруженное расширение может добавить имя, а выгрузка — убрать его. Наличие имени не означает возможность создать экземпляр.
| Имя | Тип | По умолчанию |
|---|---|---|
class | StringName | — |
classТочное зарегистрированное имя класса, например DocsNativeProbe.
booltrue для зарегистрированного имени. В проверке значение сменилось на false после выгрузки DLL.
ClassGetApiTypeClassDB.ApiType
public static ClassDB.ApiType ClassGetApiType(StringName @class);Возвращает тип API указанного class.
| Имя | Тип | По умолчанию |
|---|---|---|
class | StringName | — |
ClassDB.ApiTypeClassGetEnumConstantsstring[]
public static string[] ClassGetEnumConstants(StringName @class, StringName @enum, bool noInheritance = false);Возвращает массив со всеми ключами в enum class или его предке.
| Имя | Тип | По умолчанию |
|---|---|---|
class | StringName | — |
enum | StringName | — |
noInheritance | bool | false |
string[]ClassGetEnumListstring[]
public static string[] ClassGetEnumList(StringName @class, bool noInheritance = false);Возвращает массив со всеми перечислениями class или его предков.
| Имя | Тип | По умолчанию |
|---|---|---|
class | StringName | — |
noInheritance | bool | false |
string[]ClassGetIntegerConstantlong
public static long ClassGetIntegerConstant(StringName @class, StringName name);Читает зарегистрированную целочисленную константу класса. Подходит для проверки значений, переданных расширением через ABI; не создаёт экземпляр класса.
| Имя | Тип | По умолчанию |
|---|---|---|
class | StringName | — |
name | StringName | — |
classИмя класса, в котором ищется константа.
nameТочное имя константы, например ProductVersion.
longЗарегистрированное int64-значение; проверены 10000 и 22. Если константа не найдена, сообщает ошибку и возвращает 0: ноль не подтверждает её наличие.
ClassGetIntegerConstantEnumStringName
public static StringName ClassGetIntegerConstantEnum(StringName @class, StringName name, bool noInheritance = false);Возвращает значения, перечисляющие целочисленную константу name из class или ее предка.
| Имя | Тип | По умолчанию |
|---|---|---|
class | StringName | — |
name | StringName | — |
noInheritance | bool | false |
StringNameClassGetIntegerConstantListstring[]
public static string[] ClassGetIntegerConstantList(StringName @class, bool noInheritance = false);Возвращает массив с именами всех целочисленных констант class или его предков.
| Имя | Тип | По умолчанию |
|---|---|---|
class | StringName | — |
noInheritance | bool | false |
string[]ClassGetMethodArgumentCountint
public static int ClassGetMethodArgumentCount(StringName @class, StringName method, bool noInheritance = false);Возвращает число объявленных аргументов обычного привязанного метода, не только обязательных. Ноль также возвращается, если метод не найден; отдельно проверяйте ClassHasMethod.
| Имя | Тип | По умолчанию |
|---|---|---|
class | StringName | — |
method | StringName | — |
noInheritance | bool | false |
classТочное нативное имя зарегистрированного класса.
methodНативное имя обычного привязанного метода, например get_instance_id.
noInheritanceTrue — только объявления этого класса; false — с предками.
intЧисло объявленных аргументов; 0 неоднозначен без проверки существования.
ClassGetMethodListReckfell.Collections.Array<Reckfell.Collections.Dictionary>
public static Reckfell.Collections.Array<Reckfell.Collections.Dictionary> ClassGetMethodList(StringName @class, bool noInheritance = false);Возвращает словари метаданных зарегистрированных методов класса. По умолчанию включает предков; noInheritance=true ограничивает объявления текущим классом. Это не CLR reflection и не полный набор специальных языковых операций.
| Имя | Тип | По умолчанию |
|---|---|---|
class | StringName | — |
noInheritance | bool | false |
classТочное нативное имя зарегистрированного класса.
noInheritanceTrue — только объявления этого класса; false — с предками.
Reckfell.Collections.Array<Reckfell.Collections.Dictionary>Коллекция словарей зарегистрированных методов.
ClassGetPropertyVariant
public static Variant ClassGetProperty(ReckfellObject @object, StringName property);Читает значение конкретного объекта через нативный get_native, не через скриптовые свойства CLR. Это значение экземпляра, не default класса; для скрипта используйте Object.Get.
| Имя | Тип | По умолчанию |
|---|---|---|
object | ReckfellObject | — |
property | StringName | — |
objectЖивой объект, значение свойства которого читается или изменяется.
propertyНативное имя свойства, например position.
VariantТекущее значение свойства переданного объекта.
ClassGetPropertyDefaultValueVariant
public static Variant ClassGetPropertyDefaultValue(StringName @class, StringName property);Возвращает значение по умолчанию property из class или его родительских классов.
| Имя | Тип | По умолчанию |
|---|---|---|
class | StringName | — |
property | StringName | — |
VariantClassGetPropertyGetterStringName
public static StringName ClassGetPropertyGetter(StringName @class, StringName property);Возвращает нативное имя getter зарегистрированного свойства, например get_position. Это не имя свойства или метода оболочки C# в PascalCase.
| Имя | Тип | По умолчанию |
|---|---|---|
class | StringName | — |
property | StringName | — |
classТочное нативное имя зарегистрированного класса.
propertyНативное имя свойства, например position.
StringNameНативное имя getter свойства.
ClassGetPropertyListReckfell.Collections.Array<Reckfell.Collections.Dictionary>
public static Reckfell.Collections.Array<Reckfell.Collections.Dictionary> ClassGetPropertyList(StringName @class, bool noInheritance = false);Возвращает зарегистрированные описания свойств класса с флагами и hints. Для динамических свойств/скрипта конкретного объекта используйте его GetPropertyList.
| Имя | Тип | По умолчанию |
|---|---|---|
class | StringName | — |
noInheritance | bool | false |
classТочное нативное имя зарегистрированного класса.
noInheritanceTrue — только объявления этого класса; false — с предками.
Reckfell.Collections.Array<Reckfell.Collections.Dictionary>Коллекция словарей зарегистрированных свойств.
ClassGetPropertySetterStringName
public static StringName ClassGetPropertySetter(StringName @class, StringName property);Возвращает нативное имя setter зарегистрированного свойства, например set_position. Сверяйте наличие свойства и подходящие аргументы перед динамическим вызовом.
| Имя | Тип | По умолчанию |
|---|---|---|
class | StringName | — |
property | StringName | — |
classТочное нативное имя зарегистрированного класса.
propertyНативное имя свойства, например position.
StringNameНативное имя setter свойства.
ClassGetSignalReckfell.Collections.Dictionary
public static Reckfell.Collections.Dictionary ClassGetSignal(StringName @class, StringName signal);Возвращает данные signal class или его предка. Возвращаемое значение — Reckfell.Collections.Dictionary со следующими ключами: args, default_args, flags, id, name, return: (class_name, hint, hint_string, name, type, usage).
| Имя | Тип | По умолчанию |
|---|---|---|
class | StringName | — |
signal | StringName | — |
Reckfell.Collections.DictionaryClassGetSignalListReckfell.Collections.Array<Reckfell.Collections.Dictionary>
public static Reckfell.Collections.Array<Reckfell.Collections.Dictionary> ClassGetSignalList(StringName @class, bool noInheritance = false);Возвращает зарегистрированные сигналы класса и, по умолчанию, предков. Пользовательские сигналы отдельного экземпляра не становятся объявлениями ClassDB.
| Имя | Тип | По умолчанию |
|---|---|---|
class | StringName | — |
noInheritance | bool | false |
classТочное нативное имя зарегистрированного класса.
noInheritanceTrue — только объявления этого класса; false — с предками.
Reckfell.Collections.Array<Reckfell.Collections.Dictionary>Коллекция словарей зарегистрированных сигналов.
ClassHasEnumbool
public static bool ClassHasEnum(StringName @class, StringName name, bool noInheritance = false);Возвращает, имеет ли class или его предок перечисление с именем name или нет.
| Имя | Тип | По умолчанию |
|---|---|---|
class | StringName | — |
name | StringName | — |
noInheritance | bool | false |
boolClassHasIntegerConstantbool
public static bool ClassHasIntegerConstant(StringName @class, StringName name);Возвращает, имеет ли class или его предок целочисленную константу с именем name или нет.
| Имя | Тип | По умолчанию |
|---|---|---|
class | StringName | — |
name | StringName | — |
boolClassHasMethodbool
public static bool ClassHasMethod(StringName @class, StringName method, bool noInheritance = false);Проверяет обычный зарегистрированный метод класса с учётом noInheritance. Для экземпляра со скриптом и специальных динамических операций используйте соответствующий объектный API.
| Имя | Тип | По умолчанию |
|---|---|---|
class | StringName | — |
method | StringName | — |
noInheritance | bool | false |
classТочное нативное имя зарегистрированного класса.
methodНативное имя обычного привязанного метода, например get_instance_id.
noInheritanceTrue — только объявления этого класса; false — с предками.
boolTrue при найденном обычном методе в выбранной области.
ClassHasSignalbool
public static bool ClassHasSignal(StringName @class, StringName signal);Проверяет зарегистрированный сигнал класса с наследованием. Для динамического пользовательского сигнала отдельного объекта используйте HasSignal/HasUserSignal этого объекта.
| Имя | Тип | По умолчанию |
|---|---|---|
class | StringName | — |
signal | StringName | — |
classТочное нативное имя зарегистрированного класса.
signalИмя зарегистрированного сигнала.
boolTrue при найденном зарегистрированном сигнале.
ClassSetPropertyError
public static Error ClassSetProperty(ReckfellObject @object, StringName property, Variant value);Записывает свойство конкретного объекта через нативный set_native. Скриптовое свойство может вернуть Error.Unavailable; используйте Object.Set для скриптового пути. Default класса не меняется.
| Имя | Тип | По умолчанию |
|---|---|---|
object | ReckfellObject | — |
property | StringName | — |
value | Variant | — |
objectЖивой объект, значение свойства которого читается или изменяется.
propertyНативное имя свойства, например position.
valueСовместимое значение Variant для setter объекта.
ErrorError.Ok при успешном присваивании, иначе код ошибки.
GetClassListstring[]
public static string[] GetClassList();Возвращает имена нативных классов текущего реестра. Набор зависит от сборки и загруженных расширений; это не перечень всех классов CLR. Для собственного отображения сортируйте явно.
string[]Массив нативных имён текущего реестра.
GetInheritersFromClassstring[]
public static string[] GetInheritersFromClass(StringName @class);Возвращает прямых и косвенных наследников нативного класса без самой базы. Для одного уровня фильтруйте по GetParentClass; не путайте наследование с родителями Entity в дереве.
| Имя | Тип | По умолчанию |
|---|---|---|
class | StringName | — |
classТочное нативное имя зарегистрированного класса.
string[]Имена прямых и косвенных наследников без самой базы.
GetParentClassStringName
public static StringName GetParentClass(StringName @class);Читает непосредственный базовый класс в реестре типов. Это не родительская Entity игрового экземпляра и не его Owner.
| Имя | Тип | По умолчанию |
|---|---|---|
class | StringName | — |
classИмя зарегистрированного класса.
StringNameStringName базового класса; для DocsNativeProbe проверено Entity.
InstantiateVariant
public static Variant Instantiate(StringName @class);Создаёт экземпляр зарегистрированного нативного класса. Сначала проверяйте ClassExists и CanInstantiate; результат не подключает скрипт CLR и не инстанцирует префаб. За дальнейшее владение отвечает вызывающая сторона.
| Имя | Тип | По умолчанию |
|---|---|---|
class | StringName | — |
classТочное нативное имя зарегистрированного класса.
VariantVariant с созданным объектом; при неудаче результат не содержит пригодного экземпляра.
IsClassEnabledbool
public static bool IsClassEnabled(StringName @class);Проверяет включённость зарегистрированного класса. Это не проверка публичности, наличия создателя или типа скрипта. Для неизвестного имени сначала используйте ClassExists.
| Имя | Тип | По умолчанию |
|---|---|---|
class | StringName | — |
classТочное нативное имя зарегистрированного класса.
boolTrue для включённого класса.
IsClassEnumBitfieldbool
public static bool IsClassEnumBitfield(StringName @class, StringName @enum, bool noInheritance = false);Возвращает, имеет ли class (или его предковые классы, если no_inheritance равен false) перечисление с именем enum, которое является битовым полем.
| Имя | Тип | По умолчанию |
|---|---|---|
class | StringName | — |
enum | StringName | — |
noInheritance | bool | false |
boolIsClassExposedbool
public static bool IsClassExposed(StringName @class);Проверяет публичность нативного класса в реестре. Публичный абстрактный класс может не создаваться; отдельно используйте CanInstantiate.
| Имя | Тип | По умолчанию |
|---|---|---|
class | StringName | — |
classТочное нативное имя зарегистрированного класса.
boolTrue для публично предоставленного класса.
IsParentClassbool
public static bool IsParentClass(StringName @class, StringName inherits);Проверяет, является ли inherits нативной базой class. Первый аргумент — проверяемый производный класс. Одинаковые имена в этой реализации также дают true.
| Имя | Тип | По умолчанию |
|---|---|---|
class | StringName | — |
inherits | StringName | — |
classТочное нативное имя зарегистрированного класса.
inheritsПроверяемая база, не имя дочерней Entity в дереве.
boolTrue, если class совпадает с inherits или наследует его.
ClassDB.ApiType
| Значение | Описание |
|---|---|
Core = 0 | Тип класса Коренное ядро. |
Editor = 1 | Тип класса Собственного Редактора. |
EditorExtension = 3 | Тип класса редактора ReckfellExtension. |
Extension = 2 | Тип класса ReckfellExtension. |
None = 4 | Неизвестный тип класса. |