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