Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
ClassDB
继承: Object
类信息的存储库。
描述
提供对引擎中所有可用类的元数据的访问。
注意:脚本使用 class_name 定义的类并不属于 ClassDB,因此不会返回方法列表、属性列表等反射数据。不过 GDExtension 定义的类属于 ClassDB,因此会返回反射数据。
方法
枚举
enum APIType: 🔗
APIType API_CORE = 0
原生核心类型。
APIType API_EDITOR = 1
原生编辑器类型。
APIType API_EXTENSION = 2
GDExtension 类型。
APIType API_EDITOR_EXTENSION = 3
GDExtension 编辑器类型。
APIType API_NONE = 4
未知类型。
方法说明
bool can_instantiate(class: StringName) const 🔗
如果可以从指定的 class 实例化对象,则返回 true,否则返回 false。
Variant class_call_static(class: StringName, method: StringName, ...) vararg 🔗
调用类的静态方法。
bool class_exists(class: StringName) const 🔗
返回 class 类是否可用。
APIType class_get_api_type(class: StringName) const 🔗
返回 class 类的 API 类型。
PackedStringArray class_get_enum_constants(class: StringName, enum: StringName, no_inheritance: bool = false) const 🔗
返回一个数组,其中包含 class 或其祖先的 enum 中的所有键。
PackedStringArray class_get_enum_list(class: StringName, no_inheritance: bool = false) const 🔗
返回一个数组,其中包含 class 或其祖先的所有枚举。
int class_get_integer_constant(class: StringName, name: StringName) const 🔗
返回 class 或其父级的整数常量值 name。如果找不到该常量,则总是返回0。
StringName class_get_integer_constant_enum(class: StringName, name: StringName, no_inheritance: bool = false) const 🔗
返回 class 或其祖先的整数常量 name 所属的枚举。
PackedStringArray class_get_integer_constant_list(class: StringName, no_inheritance: bool = false) const 🔗
返回包含 class 或其父级全部整数常量的名称数组。
int class_get_method_argument_count(class: StringName, method: StringName, no_inheritance: bool = false) const 🔗
如果 no_inheritance 为 false,则返回 class 或其祖先的方法 method 的参数数量。
Array[Dictionary] class_get_method_list(class: StringName, no_inheritance: bool = false) const 🔗
如果 no_inheritance 为 false,则返回包含 class 或其祖先的所有方法的数组。数组的每个元素都是一个 Dictionary,包含以下键:args、default_args、flags、id、name、return: (class_name, hint, hint_string, name, type, usage)。
注意:在导出的发布版本中,调试信息不可用,因此返回的字典将仅包含方法名称。
Variant class_get_property(object: Object, property: StringName) const 🔗
返回 object 或其父级 property 的属性值。
Variant class_get_property_default_value(class: StringName, property: StringName) const 🔗
返回 class 或其祖先类的 property 的默认值。
StringName class_get_property_getter(class: StringName, property: StringName) 🔗
返回 class 类中 property 属性的 getter 方法名。
Array[Dictionary] class_get_property_list(class: StringName, no_inheritance: bool = false) const 🔗
如果 no_inheritance 为 false,则返回包含 class 或其祖先的所有属性的数组。
StringName class_get_property_setter(class: StringName, property: StringName) 🔗
返回 class 类中 property 属性的 setter 方法名。
Dictionary class_get_signal(class: StringName, signal: StringName) const 🔗
返回 class 或其祖先的 signal 数据。返回值是具有以下键的 Dictionary:args、default_args、flags、id、name、return: (class_name, hint, hint_string, name, type, usage)。
Array[Dictionary] class_get_signal_list(class: StringName, no_inheritance: bool = false) const 🔗
如果 no_inheritance 为 false,则返回包含 class 或其祖先的所有信号的数组。数组的每个元素都是一个如 class_get_signal() 中所述的 Dictionary。
bool class_has_enum(class: StringName, name: StringName, no_inheritance: bool = false) const 🔗
返回类 class 或其祖类是否有名为 name 的枚举。
bool class_has_integer_constant(class: StringName, name: StringName) const 🔗
返回类 class 或其祖类是否有名为 name 的整数常量。
bool class_has_method(class: StringName, method: StringName, no_inheritance: bool = false) const 🔗
返回类 class 是否有名为 method 的方法(如果 no_inheritance 为 false 则还会检查其祖类)。
bool class_has_signal(class: StringName, signal: StringName) const 🔗
返回类 class 或其祖类是否有名为 signal 的信号。
Error class_set_property(object: Object, property: StringName, value: Variant) const 🔗
将对象 object 的 property 属性值设置为 value。
PackedStringArray get_class_list() const 🔗
返回引擎中所有可用类的名称。
注意:列表中不包含脚本使用 class_name 定义的类。请使用 ProjectSettings.get_global_class_list() 获取脚本定义的类的列表。
PackedStringArray get_inheriters_from_class(class: StringName) const 🔗
返回引擎中所有直接或间接继承自 class 的类的名称。
StringName get_parent_class(class: StringName) const 🔗
返回 class 的父类。
Variant instantiate(class: StringName) const 🔗
创建 class 的实例。
bool is_class_enabled(class: StringName) const 🔗
返回这个 class 是否已启用。
bool is_class_enum_bitfield(class: StringName, enum: StringName, no_inheritance: bool = false) const 🔗
返回类 class 是否有名为 enum 的位域枚举(如果 no_inheritance 为 false 则还会检查其祖类)。
bool is_parent_class(class: StringName, inherits: StringName) const 🔗
返回 inherits 是否为 class 的祖先。