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; }