跳转至

GFSignalBridge

API Reference / Standard / 类索引

  • 路径:addons/gf/standard/utilities/signals/bridge/gf_signal_bridge.gd
  • 模块:Standard
  • 继承:Resource
  • API:public
  • 类别:资源定义 (resource_definition)
  • 首次版本:3.17.0

声明式信号到 Callable 的桥接资源。 桥接只描述信号来源、目标方法、参数重排和常量参数。它不修改场景结构、 不解释信号业务含义,也不要求调用方使用特定 UI 或状态机。

成员概览

类型 名称 签名
属性 bridge_id var bridge_id: StringName = &""
属性 enabled var enabled: bool = true
属性 source var source: GFSignalSourceRef = GFSignalSourceRef.new()
属性 target var target: GFCallableTargetRef = GFCallableTargetRef.new()
属性 argument_indices var argument_indices: PackedInt32Array = PackedInt32Array()
属性 constant_args var constant_args: Array = []
属性 append_context var append_context: bool = false
属性 one_shot var one_shot: bool = false
属性 connect_flags var connect_flags: int = 0
属性 metadata var metadata: Dictionary = {}
方法 connect_bridge func connect_bridge( root: Node, owner: Object = null, signal_utility: GFSignalUtility = null ) -> GFSignalBridgeBinding:
方法 invoke func invoke(root: Node, signal_args: Array = []) -> Dictionary:
方法 build_callable_args func build_callable_args(signal_args: Array = []) -> Array:
方法 get_validation_report func get_validation_report(root: Node) -> Dictionary:
方法 to_dictionary func to_dictionary() -> Dictionary:

属性

bridge_id

  • API:public
var bridge_id: StringName = &""

桥接 ID,便于调试和项目侧索引。

enabled

  • API:public
var enabled: bool = true

是否启用该桥接。

source

  • API:public
var source: GFSignalSourceRef = GFSignalSourceRef.new()

信号来源引用。

target

  • API:public
var target: GFCallableTargetRef = GFCallableTargetRef.new()

调用目标引用。

argument_indices

  • API:public
var argument_indices: PackedInt32Array = PackedInt32Array()

要从原始信号参数中抽取的索引。为空时透传全部信号参数。

constant_args

  • API:public
var constant_args: Array = []

追加到桥接参数末尾的常量参数。

结构:

  • constant_args: Array,追加在选中信号参数后的固定参数。

append_context

  • API:public
var append_context: bool = false

是否把桥接上下文字典追加到参数末尾。

one_shot

  • API:public
var one_shot: bool = false

是否只触发一次。

connect_flags

  • API:public
var connect_flags: int = 0

Godot 信号连接标记。

metadata

  • API:public
var metadata: Dictionary = {}

项目自定义元数据。框架不解释该字段。

结构:

  • metadata: Dictionary,关联到信号桥的项目侧元数据。

方法

connect_bridge

  • API:public
func connect_bridge( root: Node, owner: Object = null, signal_utility: GFSignalUtility = null ) -> GFSignalBridgeBinding:

连接桥接。

参数:

名称 说明
root 路径解析根节点。
owner 可选连接拥有者。
signal_utility 可选 GFSignalUtility;为空时创建独立连接。

返回:运行中的桥接绑定;失败时返回 null。

invoke

  • API:public
func invoke(root: Node, signal_args: Array = []) -> Dictionary:

直接执行桥接调用。

参数:

名称 说明
root 路径解析根节点。
signal_args 原始信号参数。

返回:结构化调用结果。

结构:

  • signal_args: Array,来源信号发出的原始参数。
  • return: Dictionary,包含 ok、reason、value、bridge_id 和 args。

build_callable_args

  • API:public
func build_callable_args(signal_args: Array = []) -> Array:

构建目标 Callable 参数。

参数:

名称 说明
signal_args 原始信号参数。

返回:映射后的参数。

结构:

  • signal_args: Array,来源信号发出的原始参数。
  • return: Array,传给目标 Callable 且位于 target.default_args 之前的参数。

get_validation_report

  • API:public
func get_validation_report(root: Node) -> Dictionary:

获取校验报告。

参数:

名称 说明
root 路径解析根节点。

返回:兼容 GFValidationReportDictionary 的报告字典。

结构:

  • return: GFValidationReportDictionary 兼容 Dictionary,包含 subject、bridge_id、issues、counts、summary 和 next_action。

to_dictionary

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

转换为调试字典。

返回:桥接快照。

结构:

  • return: Dictionary,包含 bridge_id、enabled、source、target、argument_indices、constant_args、append_context、one_shot 和 metadata。