From f88f90f3943e533af5cff9febdfc18c8c7e6f9d2 Mon Sep 17 00:00:00 2001
From: GwWuYou <95328647+GeWuYou@users.noreply.github.com>
Date: Fri, 2 Jan 2026 21:37:00 +0800
Subject: [PATCH] =?UTF-8?q?feat(signal):=20=E4=B8=BASignalBuilder=E6=B7=BB?=
=?UTF-8?q?=E5=8A=A0=E8=BF=9E=E6=8E=A5=E6=A0=87=E5=BF=97=E5=8F=82=E6=95=B0?=
=?UTF-8?q?=E6=94=AF=E6=8C=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 为To方法添加GodotObject.ConnectFlags参数,默认为null
- 为ToAndCall方法添加GodotObject.ConnectFlags参数,默认为null
- 重构连接逻辑使用合并后的标志值
- 更新XML文档注释包含新参数说明
---
GFramework.Godot/extensions/signal/SignalBuilder.cs | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/GFramework.Godot/extensions/signal/SignalBuilder.cs b/GFramework.Godot/extensions/signal/SignalBuilder.cs
index 4e5b423..ce26841 100644
--- a/GFramework.Godot/extensions/signal/SignalBuilder.cs
+++ b/GFramework.Godot/extensions/signal/SignalBuilder.cs
@@ -26,14 +26,16 @@ public sealed class SignalBuilder(GodotObject target, StringName signal)
/// 连接信号到指定的可调用对象
///
/// 要连接的可调用对象
+ /// 连接标志
/// 当前构建器实例
- public SignalBuilder To(Callable callable)
+ public SignalBuilder To(Callable callable, GodotObject.ConnectFlags? flags = null)
{
+ var finalFlags = flags ?? _flags;
// 根据是否设置了标志来决定连接方式
- if (_flags is null)
+ if (finalFlags is null)
target.Connect(signal, callable);
else
- target.Connect(signal, callable, (uint)_flags);
+ target.Connect(signal, callable, (uint)finalFlags);
return this;
}
@@ -42,11 +44,12 @@ public sealed class SignalBuilder(GodotObject target, StringName signal)
/// 连接信号到指定的可调用对象并立即调用
///
/// 要连接的可调用对象
+ /// 连接标志
/// 调用参数
/// 当前构建器实例
- public SignalBuilder ToAndCall(Callable callable, params Variant[] args)
+ public SignalBuilder ToAndCall(Callable callable, GodotObject.ConnectFlags? flags = null, params Variant[] args)
{
- To(callable);
+ To(callable, flags);
callable.Call(args);
return this;
}