GFObjectPropertyTools¶
API Reference / Kernel / 类索引
- 路径:
addons/gf/kernel/core/gf_object_property_tools.gd - 模块:
Kernel - 继承:
RefCounted - API:
public - 类别:运行时服务 (
runtime_service) - 首次版本:
3.17.0
Godot Object 属性访问辅助。 集中处理属性列表查询、属性路径读写、可写性判断和基础类型校验。 它不负责属性绑定、自动派发、表达式执行或业务字段解释。
成员概览¶
| 类型 | 名称 | 签名 |
|---|---|---|
| 方法 | get_property_infos |
static func get_property_infos(object: Object, usage_filter: int = -1) -> Array[Dictionary]: |
| 方法 | get_property_info_map |
static func get_property_info_map(object: Object, usage_filter: int = -1) -> Dictionary: |
| 方法 | get_property_names |
static func get_property_names(object: Object, usage_filter: int = -1) -> PackedStringArray: |
| 方法 | get_property_info |
static func get_property_info(object: Object, property_name: StringName) -> Dictionary: |
| 方法 | has_property |
static func has_property(object: Object, property_name: StringName) -> bool: |
| 方法 | has_property_path |
static func has_property_path(object: Object, property_path: NodePath) -> bool: |
| 方法 | is_property_writable |
static func is_property_writable(property_info: Dictionary) -> bool: |
| 方法 | can_write_property |
static func can_write_property(object: Object, property_path: NodePath) -> bool: |
| 方法 | read_property |
static func read_property( object: Object, property_path: NodePath, default_value: Variant = null ) -> Variant: |
| 方法 | write_property |
static func write_property( object: Object, property_path: NodePath, value: Variant, options: Dictionary = {} ) -> Dictionary: |
| 方法 | value_matches_property_type |
static func value_matches_property_type(value: Variant, property_type: int) -> bool: |
| 方法 | coerce_property_value |
static func coerce_property_value(value: Variant, property_type: int) -> Variant: |
| 方法 | get_root_property_name |
static func get_root_property_name(property_path: NodePath) -> StringName: |
方法¶
get_property_infos¶
- API:
public
获取对象属性信息列表。
参数:
| 名称 | 说明 |
|---|---|
object |
目标对象。 |
usage_filter |
属性 usage 过滤掩码;小于 0 时不过滤。 |
返回:属性信息字典列表副本。
结构:
return: Array of Godot property info Dictionary values.
get_property_info_map¶
- API:
public
获取对象属性信息映射。
参数:
| 名称 | 说明 |
|---|---|
object |
目标对象。 |
usage_filter |
属性 usage 过滤掩码;小于 0 时不过滤。 |
返回:以属性名为键的属性信息字典。
结构:
return: Dictionary[StringName, Dictionary]
get_property_names¶
- API:
public
获取对象属性名列表。
参数:
| 名称 | 说明 |
|---|---|
object |
目标对象。 |
usage_filter |
属性 usage 过滤掩码;小于 0 时不过滤。 |
返回:属性名列表。
get_property_info¶
- API:
public
获取单个属性信息。
参数:
| 名称 | 说明 |
|---|---|
object |
目标对象。 |
property_name |
属性名。 |
返回:属性信息字典副本;不存在时返回空字典。
结构:
return: Godot property info dictionary.
has_property¶
- API:
public
检查对象是否声明了指定属性。
参数:
| 名称 | 说明 |
|---|---|
object |
目标对象。 |
property_name |
属性名。 |
返回:属性存在时返回 true。
has_property_path¶
- API:
public
检查对象是否声明了属性路径的根属性。
参数:
| 名称 | 说明 |
|---|---|
object |
目标对象。 |
property_path |
属性路径。 |
返回:根属性存在时返回 true。
is_property_writable¶
- API:
public
判断属性信息是否可写。
参数:
| 名称 | 说明 |
|---|---|
property_info |
Godot 属性信息字典。 |
返回:未标记为只读时返回 true。
结构:
property_info: Godot property info dictionary.
can_write_property¶
- API:
public
检查对象属性路径是否可写。
参数:
| 名称 | 说明 |
|---|---|
object |
目标对象。 |
property_path |
属性路径。 |
返回:根属性存在且未标记为只读时返回 true。
read_property¶
- API:
public
static func read_property( object: Object, property_path: NodePath, default_value: Variant = null ) -> Variant:
读取对象属性路径。
参数:
| 名称 | 说明 |
|---|---|
object |
目标对象。 |
property_path |
属性路径。 |
default_value |
对象、路径或根属性无效时返回的默认值。 |
返回:属性值或默认值。
结构:
default_value: Variant fallback returned unchanged when the property cannot be read.return: Variant property value or the supplied default value.
write_property¶
- API:
public
static func write_property( object: Object, property_path: NodePath, value: Variant, options: Dictionary = {} ) -> Dictionary:
写入对象属性路径。
参数:
| 名称 | 说明 |
|---|---|
object |
目标对象。 |
property_path |
属性路径。 |
value |
请求写入的值。 |
options |
可选项,支持 check_writable、check_type、coerce_value。 |
返回:写入结果字典,包含 ok、error、property_name、old_value 与 new_value。
结构:
value: Variant value requested for assignment.options: Dictionary with optional bool keys check_writable, check_type, and coerce_value.return: Dictionary { ok: bool, error: String, property_name: StringName, old_value: Variant, new_value: Variant }.
value_matches_property_type¶
- API:
public
检查值是否可写入指定 Variant 类型。
参数:
| 名称 | 说明 |
|---|---|
value |
输入值。 |
property_type |
Variant.Type 常量。 |
返回:类型兼容时返回 true。
结构:
value: Variant value to compare against the requested Variant.Type.
coerce_property_value¶
- API:
public
将值转换为指定 Variant 类型的基础兼容形式。
参数:
| 名称 | 说明 |
|---|---|
value |
输入值。 |
property_type |
Variant.Type 常量。 |
返回:转换后的值;不支持转换时返回原值。
结构:
value: Variant value to coerce.return: Variant coerced value or original value.
get_root_property_name¶
- API:
public
获取属性路径的根属性名。
参数:
| 名称 | 说明 |
|---|---|
property_path |
属性路径。 |
返回:根属性名;无效路径返回空 StringName。