GFSignalUtility¶
API Reference / Standard / 类索引
- 路径:
addons/gf/standard/utilities/signals/gf_signal_utility.gd - 模块:
Standard - 继承:
GFUtility - API:
public - 类别:运行时服务 (
runtime_service) - 首次版本:
3.17.0
Godot 原生 Signal 的安全连接与链式处理工具。 用于连接不适合进入 GF 业务事件总线的节点信号,支持 owner 归属清理、 默认参数、过滤、映射、延迟、防抖和一次性触发。
成员概览¶
| 类型 | 名称 | 签名 |
|---|---|---|
| 方法 | dispose |
func dispose() -> void: |
| 方法 | connect_signal |
func connect_signal( source_signal: Signal, callback: Callable, owner: Object = null, default_args: Array = [], connect_flags: int = 0 ) -> GFSignalConnection: |
| 方法 | connect_once |
func connect_once( source_signal: Signal, callback: Callable, owner: Object = null, default_args: Array = [], connect_flags: int = 0 ) -> GFSignalConnection: |
| 方法 | connect_any |
func connect_any( source_signals: Array, callback: Callable, owner: Object = null, default_args: Array = [], connect_flags: int = 0 ) -> Array[GFSignalConnection]: |
| 方法 | disconnect_signal |
func disconnect_signal(source_signal: Signal, callback: Callable, owner: Object = null) -> void: |
| 方法 | disconnect_owner |
func disconnect_owner(owner: Object) -> void: |
| 方法 | disconnect_connections |
func disconnect_connections(connections: Array) -> void: |
| 方法 | disconnect_all |
func disconnect_all() -> void: |
| 方法 | prune_invalid_connections |
func prune_invalid_connections() -> void: |
| 方法 | get_connection_count |
func get_connection_count() -> int: |
方法¶
dispose¶
- API:
public
释放工具持有的所有 Signal 连接。
connect_signal¶
- API:
public
func connect_signal( source_signal: Signal, callback: Callable, owner: Object = null, default_args: Array = [], connect_flags: int = 0 ) -> GFSignalConnection:
安全连接一个 Signal,并返回可继续链式配置的连接对象。
参数:
| 名称 | 说明 |
|---|---|
source_signal |
要连接或断开的 Godot 信号。 |
callback |
操作完成或事件触发时执行的回调。 |
owner |
监听或连接的拥有者。 |
default_args |
回调调用时追加的默认参数。 |
connect_flags |
Godot 信号连接标记。 |
返回:创建或复用的连接对象。
结构:
default_args: Array,调用回调时前置于信号参数之前的参数。
connect_once¶
- API:
public
func connect_once( source_signal: Signal, callback: Callable, owner: Object = null, default_args: Array = [], connect_flags: int = 0 ) -> GFSignalConnection:
创建一次性 Signal 连接。
参数:
| 名称 | 说明 |
|---|---|
source_signal |
要连接或断开的 Godot 信号。 |
callback |
操作完成或事件触发时执行的回调。 |
owner |
监听或连接的拥有者。 |
default_args |
回调调用时追加的默认参数。 |
connect_flags |
Godot 信号连接标记。 |
返回:创建或复用的一次性连接对象。
结构:
default_args: Array,调用回调时前置于信号参数之前的参数。
connect_any¶
- API:
public
func connect_any( source_signals: Array, callback: Callable, owner: Object = null, default_args: Array = [], connect_flags: int = 0 ) -> Array[GFSignalConnection]:
批量连接多个 Signal 到同一个回调。
参数:
| 名称 | 说明 |
|---|---|
source_signals |
要连接的一组 Godot 信号。 |
callback |
操作完成或事件触发时执行的回调。 |
owner |
监听或连接的拥有者。 |
default_args |
回调调用时追加的默认参数。 |
connect_flags |
Godot 信号连接标记。 |
返回:成功创建或复用的连接列表。
结构:
source_signals: Array,要连接到回调的 Signal 值。default_args: Array,调用回调时前置于信号参数之前的参数。
disconnect_signal¶
- API:
public
断开指定 Signal 与回调的连接。
参数:
| 名称 | 说明 |
|---|---|
source_signal |
要连接或断开的 Godot 信号。 |
callback |
操作完成或事件触发时执行的回调。 |
owner |
监听或连接的拥有者。 |
disconnect_owner¶
- API:
public
断开某个 owner 拥有的全部连接。
参数:
| 名称 | 说明 |
|---|---|
owner |
监听或连接的拥有者。 |
disconnect_connections¶
- API:
public
断开一组由 connect_signal/connect_any 返回的连接。
参数:
| 名称 | 说明 |
|---|---|
connections |
连接对象列表。 |
结构:
connections: Array,由 connect_signal()、connect_once() 或 connect_any() 返回的 GFSignalConnection 句柄。
disconnect_all¶
- API:
public
断开所有连接。
prune_invalid_connections¶
- API:
public
清理已经失效的连接。
get_connection_count¶
- API:
public
获取当前仍被工具追踪的连接数量。
返回:仍被工具追踪的有效连接数量。