GFDecisionOption¶
API Reference / Decision / 类索引
- 路径:
addons/gf/extensions/decision/resources/gf_decision_option.gd - 模块:
Decision - 继承:
Resource - API:
public - 类别:资源定义 (
resource_definition) - 首次版本:
4.3.0
可评分的候选决策资源。 候选决策由一组 GFDecisionConsideration 评分,并按聚合策略得到最终效用分数。 它描述“如何比较候选”,不执行具体业务动作。
成员概览¶
| 类型 | 名称 | 签名 |
|---|---|---|
| 枚举 | Aggregation |
enum Aggregation |
| 属性 | decision_id |
var decision_id: StringName = &"" |
| 属性 | display_name |
var display_name: String = "" |
| 属性 | enabled |
var enabled: bool = true |
| 属性 | base_score |
var base_score: float = 1.0 |
| 属性 | aggregation |
var aggregation: Aggregation = Aggregation.MULTIPLY |
| 属性 | considerations |
var considerations: Array[GFDecisionConsideration] = [] |
| 属性 | metadata |
var metadata: Dictionary = {} |
| 方法 | add_consideration |
func add_consideration(consideration: GFDecisionConsideration) -> bool: |
| 方法 | get_consideration |
func get_consideration(consideration_id: StringName) -> GFDecisionConsideration: |
| 方法 | has_consideration |
func has_consideration(consideration_id: StringName) -> bool: |
| 方法 | remove_consideration |
func remove_consideration(consideration_id: StringName) -> bool: |
| 方法 | clear_considerations |
func clear_considerations() -> void: |
| 方法 | score |
func score(context: GFDecisionContext) -> GFDecisionScore: |
| 方法 | get_debug_snapshot |
func get_debug_snapshot(context: GFDecisionContext) -> Dictionary: |
枚举¶
Aggregation¶
- API:
public
enum Aggregation { ## 将 base_score 与各考虑项分数相乘,权重作为指数影响。 MULTIPLY, ## 按考虑项权重计算平均值,再乘以 base_score。 WEIGHTED_AVERAGE, ## 将 base_score 与加权分数相加,并钳制到 0 到 1。 SUM, ## 使用所有考虑项中的最低分。 MIN, ## 使用所有考虑项中的最高分。 MAX, }
候选分数聚合策略。
属性¶
decision_id¶
- API:
public
候选决策标识。
display_name¶
- API:
public
编辑器或调试显示名。
enabled¶
- API:
public
是否启用该候选。
base_score¶
- API:
public
基础分数,范围 0 到 1。
aggregation¶
- API:
public
分数聚合策略。
considerations¶
- API:
public
候选考虑项列表。
结构:
considerations: Array[GFDecisionConsideration],按顺序参与评分。
metadata¶
- API:
public
项目自定义元数据,框架不解释其中内容。
结构:
metadata: Dictionary[StringName, Variant] project-defined decision metadata.
方法¶
add_consideration¶
- API:
public
添加考虑项。
参数:
| 名称 | 说明 |
|---|---|
consideration |
要添加的考虑项。 |
返回:添加成功返回 true。
get_consideration¶
- API:
public
获取考虑项。
参数:
| 名称 | 说明 |
|---|---|
consideration_id |
考虑项标识。 |
返回:找到的考虑项;不存在时返回 null。
has_consideration¶
- API:
public
检查考虑项是否存在。
参数:
| 名称 | 说明 |
|---|---|
consideration_id |
考虑项标识。 |
返回:存在返回 true。
remove_consideration¶
- API:
public
移除考虑项。
参数:
| 名称 | 说明 |
|---|---|
consideration_id |
考虑项标识。 |
返回:移除成功返回 true。
clear_considerations¶
- API:
public
清空考虑项。
score¶
- API:
public
计算候选决策分数。
参数:
| 名称 | 说明 |
|---|---|
context |
决策上下文。 |
返回:评分结果。
get_debug_snapshot¶
- API:
public
获取候选决策调试快照。
参数:
| 名称 | 说明 |
|---|---|
context |
决策上下文。 |
返回:调试快照字典。
结构:
return: 包含 decision_id、display_name、enabled、aggregation、base_score 和 score 字段的 Dictionary。