GFDecisionUtility¶
API Reference / Decision / 类索引
- 路径:
addons/gf/extensions/decision/runtime/gf_decision_utility.gd - 模块:
Decision - 继承:
GFUtility - API:
public - 类别:运行时服务 (
runtime_service) - 首次版本:
4.3.0
通用决策集合注册与评分服务。 在架构中集中管理 GFDecisionSet,并为项目系统提供创建上下文、评分候选和选择最佳候选的入口。 它不执行候选动作,也不解释具体 AI 业务语义。
成员概览¶
| 类型 | 名称 | 签名 |
|---|---|---|
| 信号 | decision_set_registered |
signal decision_set_registered(decision_set_id: StringName, decision_set: GFDecisionSet) |
| 信号 | decision_set_unregistered |
signal decision_set_unregistered(decision_set_id: StringName) |
| 方法 | make_context |
func make_context( values: Dictionary = {}, subject: Object = null, target: Object = null, metadata: Dictionary = {} ) -> GFDecisionContext: |
| 方法 | register_decision_set |
func register_decision_set(decision_set_id: StringName, decision_set: GFDecisionSet) -> bool: |
| 方法 | unregister_decision_set |
func unregister_decision_set(decision_set_id: StringName) -> bool: |
| 方法 | has_decision_set |
func has_decision_set(decision_set_id: StringName) -> bool: |
| 方法 | get_decision_set |
func get_decision_set(decision_set_id: StringName) -> GFDecisionSet: |
| 方法 | get_decision_set_ids |
func get_decision_set_ids() -> PackedStringArray: |
| 方法 | clear_decision_sets |
func clear_decision_sets() -> void: |
| 方法 | score_all |
func score_all(decision_set_id: StringName, context: GFDecisionContext) -> Array[GFDecisionScore]: |
| 方法 | select_best |
func select_best(decision_set_id: StringName, context: GFDecisionContext) -> GFDecisionScore: |
| 方法 | get_debug_snapshot |
func get_debug_snapshot() -> Dictionary: |
信号¶
decision_set_registered¶
- API:
public
当决策集合注册后发出。
参数:
| 名称 | 说明 |
|---|---|
decision_set_id |
决策集合标识。 |
decision_set |
已注册的决策集合。 |
decision_set_unregistered¶
- API:
public
当决策集合注销后发出。
参数:
| 名称 | 说明 |
|---|---|
decision_set_id |
决策集合标识。 |
方法¶
make_context¶
- API:
public
func make_context( values: Dictionary = {}, subject: Object = null, target: Object = null, metadata: Dictionary = {} ) -> GFDecisionContext:
创建决策上下文。
参数:
| 名称 | 说明 |
|---|---|
values |
初始黑板值。 |
subject |
决策主体。 |
target |
可选决策目标。 |
metadata |
上下文元数据。 |
返回:新决策上下文。
结构:
values: Dictionary[StringName, Variant] initial blackboard values.metadata: Dictionary[StringName, Variant] project-defined decision metadata.
register_decision_set¶
- API:
public
注册决策集合。
参数:
| 名称 | 说明 |
|---|---|
decision_set_id |
决策集合标识。 |
decision_set |
决策集合资源。 |
返回:注册成功返回 true。
unregister_decision_set¶
- API:
public
注销决策集合。
参数:
| 名称 | 说明 |
|---|---|
decision_set_id |
决策集合标识。 |
返回:注销成功返回 true。
has_decision_set¶
- API:
public
检查决策集合是否存在。
参数:
| 名称 | 说明 |
|---|---|
decision_set_id |
决策集合标识。 |
返回:存在返回 true。
get_decision_set¶
- API:
public
获取决策集合。
参数:
| 名称 | 说明 |
|---|---|
decision_set_id |
决策集合标识。 |
返回:决策集合;不存在时返回 null。
get_decision_set_ids¶
- API:
public
获取已注册决策集合标识。
返回:排序后的决策集合标识。
clear_decision_sets¶
- API:
public
清空全部决策集合。
score_all¶
- API:
public
计算指定决策集合中的所有候选分数。
参数:
| 名称 | 说明 |
|---|---|
decision_set_id |
决策集合标识。 |
context |
决策上下文。 |
返回:按分数降序排列的评分结果。
结构:
return: Array[GFDecisionScore],每个候选的评分结果;集合不存在时为空数组。
select_best¶
- API:
public
选择指定决策集合中的最佳候选。
参数:
| 名称 | 说明 |
|---|---|
decision_set_id |
决策集合标识。 |
context |
决策上下文。 |
返回:最佳评分结果;集合不存在时返回 rejected score。
get_debug_snapshot¶
- API:
public
获取决策服务调试快照。
返回:调试快照字典。
结构:
return: 包含 decision_set_count 和 decision_set_ids 字段的 Dictionary。