GFDecisionContext¶
API Reference / Decision / 类索引
- 路径:
addons/gf/extensions/decision/runtime/gf_decision_context.gd - 模块:
Decision - 继承:
RefCounted - API:
public - 类别:领域模型 (
domain_model) - 首次版本:
4.3.0
通用决策上下文。 组合黑板、主体、目标和元数据,供决策候选与考虑项读取状态。 该类型不持久化对象引用,也不定义任何具体游戏字段。
成员概览¶
| 类型 | 名称 | 签名 |
|---|---|---|
| 属性 | blackboard |
var blackboard: GFDecisionBlackboard = null |
| 属性 | subject |
var subject: Object = null |
| 属性 | target |
var target: Object = null |
| 属性 | metadata |
var metadata: Dictionary = {} |
| 方法 | set_value |
func set_value(key: StringName, value: Variant) -> void: |
| 方法 | get_value |
func get_value(key: StringName, default_value: Variant = null) -> Variant: |
| 方法 | has_value |
func has_value(key: StringName) -> bool: |
| 方法 | set_metadata_value |
func set_metadata_value(key: StringName, value: Variant) -> void: |
| 方法 | get_metadata_value |
func get_metadata_value(key: StringName, default_value: Variant = null) -> Variant: |
| 方法 | get_subject_value |
func get_subject_value(key: StringName, fallback: Variant = null) -> Variant: |
| 方法 | get_target_value |
func get_target_value(key: StringName, fallback: Variant = null) -> Variant: |
| 方法 | duplicate_context |
func duplicate_context() -> GFDecisionContext: |
| 方法 | get_debug_snapshot |
func get_debug_snapshot() -> Dictionary: |
属性¶
blackboard¶
- API:
public
决策黑板。
subject¶
- API:
public
决策主体,例如当前 agent、系统或导演对象。
target¶
- API:
public
可选决策目标。
metadata¶
- API:
public
项目自定义上下文元数据。
结构:
metadata: Dictionary[StringName, Variant] project-defined decision metadata.
方法¶
set_value¶
- API:
public
设置黑板值。
参数:
| 名称 | 说明 |
|---|---|
key |
值键。 |
value |
要写入或修改的值。 |
结构:
value: 要写入黑板的任意项目值。
get_value¶
- API:
public
获取黑板值。
参数:
| 名称 | 说明 |
|---|---|
key |
值键。 |
default_value |
缺失时返回的默认值。 |
返回:黑板值或默认值。
结构:
default_value: 黑板缺失时返回的任意默认值。return: 黑板中的项目值,或传入的 default_value。
has_value¶
- API:
public
检查黑板值是否存在。
参数:
| 名称 | 说明 |
|---|---|
key |
值键。 |
返回:存在返回 true。
set_metadata_value¶
- API:
public
设置元数据值。
参数:
| 名称 | 说明 |
|---|---|
key |
元数据键。 |
value |
元数据值。 |
结构:
value: 要写入元数据的任意项目值。
get_metadata_value¶
- API:
public
获取元数据值。
参数:
| 名称 | 说明 |
|---|---|
key |
元数据键。 |
default_value |
缺失时返回的默认值。 |
返回:元数据值或默认值。
结构:
default_value: 元数据缺失时返回的任意默认值。return: 元数据中的项目值,或传入的 default_value。
get_subject_value¶
- API:
public
从主体读取决策值。 优先调用主体的 get_decision_value(key, fallback),否则读取同名属性。
参数:
| 名称 | 说明 |
|---|---|
key |
值键或属性名。 |
fallback |
读取失败时的兜底值。 |
返回:主体值或兜底值。
结构:
fallback: 读取失败时返回的任意项目值。return: 从主体读取的项目值,或传入的 fallback。
get_target_value¶
- API:
public
从目标读取决策值。 优先调用目标的 get_decision_value(key, fallback),否则读取同名属性。
参数:
| 名称 | 说明 |
|---|---|
key |
值键或属性名。 |
fallback |
读取失败时的兜底值。 |
返回:目标值或兜底值。
结构:
fallback: 读取失败时返回的任意项目值。return: 从目标读取的项目值,或传入的 fallback。
duplicate_context¶
- API:
public
创建上下文副本。 默认复用 subject 与 target 对象引用,只复制黑板值和元数据。
返回:新上下文实例。
get_debug_snapshot¶
- API:
public
获取调试快照。
返回:调试快照字典。
结构:
return: 包含 blackboard、metadata、subject_class 和 target_class 字段的 Dictionary。