跳转至

GFDecisionBlackboard

API Reference / Decision / 类索引

  • 路径:addons/gf/extensions/decision/runtime/gf_decision_blackboard.gd
  • 模块:Decision
  • 继承:RefCounted
  • API:public
  • 类别:领域模型 (domain_model)
  • 首次版本:4.3.0

通用决策黑板。 保存一组由项目定义的运行时值,用于 Utility AI、导演系统或其他决策流程读取。 它只管理键值、变更信号和调试快照,不规定任何玩法字段。

成员概览

类型 名称 签名
信号 value_changed signal value_changed(key: StringName, old_value: Variant, new_value: Variant)
信号 value_removed signal value_removed(key: StringName, old_value: Variant)
属性 values var values: 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:
方法 erase_value func erase_value(key: StringName) -> bool:
方法 clear func clear() -> void:
方法 merge func merge(source_values: Dictionary, overwrite: bool = true) -> void:
方法 to_dictionary func to_dictionary() -> Dictionary:
方法 duplicate_blackboard func duplicate_blackboard() -> GFDecisionBlackboard:
方法 get_debug_snapshot func get_debug_snapshot() -> Dictionary:

信号

value_changed

  • API:public
signal value_changed(key: StringName, old_value: Variant, new_value: Variant)

当黑板值发生变化时发出。

参数:

名称 说明
key 值键。
old_value 旧值。
new_value 新值。

结构:

  • old_value: 黑板中的任意项目值;之前不存在时为 null。
  • new_value: 黑板中的任意项目值。

value_removed

  • API:public
signal value_removed(key: StringName, old_value: Variant)

当黑板值被移除时发出。

参数:

名称 说明
key 值键。
old_value 被移除的旧值。

结构:

  • old_value: 黑板中的任意项目值。

属性

values

  • API:public
var values: Dictionary = {}

黑板值表。键通常为 StringName,值由项目决定。

结构:

  • values: Dictionary[StringName, Variant] project-defined decision values.

方法

set_value

  • API:public
func set_value(key: StringName, value: Variant) -> void:

设置黑板值。

参数:

名称 说明
key 值键。
value 要写入或修改的值。

结构:

  • value: 要写入黑板的任意项目值。

get_value

  • API:public
func get_value(key: StringName, default_value: Variant = null) -> Variant:

获取黑板值。

参数:

名称 说明
key 值键。
default_value 缺失时返回的默认值。

返回:黑板值或默认值。

结构:

  • default_value: 黑板缺失时返回的任意默认值。
  • return: 黑板中的项目值,或传入的 default_value。

has_value

  • API:public
func has_value(key: StringName) -> bool:

检查黑板值是否存在。

参数:

名称 说明
key 值键。

返回:存在返回 true。

erase_value

  • API:public
func erase_value(key: StringName) -> bool:

移除黑板值。

参数:

名称 说明
key 值键。

返回:移除成功返回 true。

clear

  • API:public
func clear() -> void:

清空全部黑板值。

merge

  • API:public
func merge(source_values: Dictionary, overwrite: bool = true) -> void:

合并一批黑板值。

参数:

名称 说明
source_values 要合并的值表。
overwrite 已存在同名键时是否覆盖。

结构:

  • source_values: Dictionary[StringName, Variant] project-defined decision values.

to_dictionary

  • API:public
func to_dictionary() -> Dictionary:

转换为值表副本。

返回:黑板值表副本。

结构:

  • return: Dictionary[StringName, Variant] project-defined decision values.

duplicate_blackboard

  • API:public
func duplicate_blackboard() -> GFDecisionBlackboard:

创建黑板副本。

返回:新黑板实例。

get_debug_snapshot

  • API:public
func get_debug_snapshot() -> Dictionary:

获取调试快照。

返回:调试快照字典。

结构:

  • return: 包含 value_count、keys 和 values 字段的 Dictionary。