GFInteractionReceiver¶
API Reference / Interaction / 类索引
- 路径:
addons/gf/extensions/interaction/nodes/gf_interaction_receiver.gd - 模块:
Interaction - 继承:
Node - API:
public - 类别:运行时句柄 (
runtime_handle) - 首次版本:
3.17.0
通用交互接收节点。 用 GFInteractionContext 接收任意交互请求,并提供启用状态、交互 ID 过滤、 自定义校验回调和统一结果报告。节点不解释任何业务语义。
成员概览¶
| 类型 | 名称 | 签名 |
|---|---|---|
| 信号 | interaction_validating |
signal interaction_validating(context: GFInteractionContext, report: Dictionary) |
| 信号 | interaction_received |
signal interaction_received(context: GFInteractionContext, report: Dictionary) |
| 信号 | interaction_rejected |
signal interaction_rejected(context: GFInteractionContext, report: Dictionary) |
| 属性 | enabled |
var enabled: bool = true |
| 属性 | accepted_interaction_ids |
var accepted_interaction_ids: Array[StringName] = [] |
| 属性 | rejected_interaction_ids |
var rejected_interaction_ids: Array[StringName] = [] |
| 属性 | metadata |
var metadata: Dictionary = {} |
| 属性 | receiver_path |
var receiver_path: NodePath = NodePath("") |
| 属性 | validation_callback |
var validation_callback: Callable = Callable() |
| 方法 | can_receive_interaction |
func can_receive_interaction(interaction_id: StringName = &"") -> bool: |
| 方法 | receive_interaction |
func receive_interaction(context: GFInteractionContext, interaction_id: StringName = &"") -> Dictionary: |
信号¶
interaction_validating¶
- API:
public
交互进入自定义校验阶段时发出。
参数:
| 名称 | 说明 |
|---|---|
context |
交互上下文。 |
report |
当前结果报告副本。 |
结构:
report: 交互结果报告 Dictionary,包含 ok、interaction_id、receiver、reason、message 和 metadata 等字段。
interaction_received¶
- API:
public
交互被接受时发出。
参数:
| 名称 | 说明 |
|---|---|
context |
交互上下文。 |
report |
结果报告。 |
结构:
report: 交互结果报告 Dictionary,包含 ok、interaction_id、receiver、reason、message 和 metadata 等字段。
interaction_rejected¶
- API:
public
交互被拒绝时发出。
参数:
| 名称 | 说明 |
|---|---|
context |
交互上下文。 |
report |
结果报告。 |
结构:
report: 交互结果报告 Dictionary,包含 ok、interaction_id、receiver、reason、message 和 metadata 等字段。
属性¶
enabled¶
- API:
public
是否允许接收交互。
accepted_interaction_ids¶
- API:
public
非空时,只接受这些交互 ID。
rejected_interaction_ids¶
- API:
public
始终拒绝的交互 ID。
metadata¶
- API:
public
接收器自定义元数据。框架不解释该字段。
结构:
metadata: 接收器自定义元数据 Dictionary;框架会复制到结果报告,但不解释其中键值。
receiver_path¶
- API:
public
可选业务接收节点路径;为空时由当前节点直接接收。
validation_callback¶
- API:
public
自定义校验回调,建议签名为 func(context: GFInteractionContext, report: Dictionary) -> Variant。 返回 bool 可直接决定是否接受;返回 Dictionary 可覆盖 ok、reason、metadata 等报告字段。
方法¶
can_receive_interaction¶
- API:
public
检查指定交互 ID 是否可被当前接收器接受。
参数:
| 名称 | 说明 |
|---|---|
interaction_id |
交互 ID。 |
返回:可接受时返回 true。
receive_interaction¶
- API:
public
func receive_interaction(context: GFInteractionContext, interaction_id: StringName = &"") -> Dictionary:
接收一次交互。
参数:
| 名称 | 说明 |
|---|---|
context |
交互上下文。 |
interaction_id |
交互 ID。 |
返回:统一结果报告。
结构:
return: 交互结果报告 Dictionary,包含 ok、interaction_id、receiver、reason、message 和 metadata 等字段。