From 0f2f49dd01d54500a7bfb36e66e6ff969f56566b Mon Sep 17 00:00:00 2001 From: shenjianxing <”315615051@qq.com“> Date: Wed, 26 Mar 2025 14:56:09 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DCondition=20or=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Scripts/Internal/Action/ConditionGroup.cs | 5 ++ .../EventKit/EventSystem/StringEventSystem.cs | 5 ++ .../Scripts/Conditions/StrEventCondition.cs | 6 ++- Assets/Scripts/UI/UITools.cs | 50 +++++++++++++------ 4 files changed, 50 insertions(+), 16 deletions(-) diff --git a/Assets/QFramework/Toolkits/_CoreKit/ActionKit/Scripts/Internal/Action/ConditionGroup.cs b/Assets/QFramework/Toolkits/_CoreKit/ActionKit/Scripts/Internal/Action/ConditionGroup.cs index a308e050..e10af487 100644 --- a/Assets/QFramework/Toolkits/_CoreKit/ActionKit/Scripts/Internal/Action/ConditionGroup.cs +++ b/Assets/QFramework/Toolkits/_CoreKit/ActionKit/Scripts/Internal/Action/ConditionGroup.cs @@ -43,6 +43,11 @@ namespace QFramework public ActionStatus Status { get; set; } public void OnStart() { + foreach (var item in mCondition) + { + item.OnStart(); + } + } public void OnExecute(float dt) diff --git a/Assets/QFramework/Toolkits/_CoreKit/EventKit/EventSystem/StringEventSystem.cs b/Assets/QFramework/Toolkits/_CoreKit/EventKit/EventSystem/StringEventSystem.cs index e02c0cb5..2c180ec3 100644 --- a/Assets/QFramework/Toolkits/_CoreKit/EventKit/EventSystem/StringEventSystem.cs +++ b/Assets/QFramework/Toolkits/_CoreKit/EventKit/EventSystem/StringEventSystem.cs @@ -44,6 +44,7 @@ namespace QFramework public void Send(string key) { + if (mEvents.TryGetValue(key, out var e)) { var easyEvent = e.As(); @@ -67,6 +68,10 @@ namespace QFramework } } + public bool HasRegister(string key) + { + return mEvents.ContainsKey(key); + } public void UnRegister(string key, Action onEvent) { diff --git a/Assets/Scripts/Conditions/StrEventCondition.cs b/Assets/Scripts/Conditions/StrEventCondition.cs index 9caff2a3..46bba916 100644 --- a/Assets/Scripts/Conditions/StrEventCondition.cs +++ b/Assets/Scripts/Conditions/StrEventCondition.cs @@ -13,7 +13,7 @@ namespace QFramework private StrEventCondition() { } string key; - + bool isFinished = false; public static StrEventCondition Allocate(string key) { var conditionAction = mSimpleObjectPool.Allocate(); @@ -21,11 +21,12 @@ namespace QFramework conditionAction.Deinited = false; conditionAction.Reset(); conditionAction.key = key; + conditionAction.isFinished = false; return conditionAction; } public bool Check() { - return false; + return isFinished; } public bool Paused { get; set; } public bool Deinited { get; set; } @@ -39,6 +40,7 @@ namespace QFramework private void OnEventFnished() { StringEventSystem.Global.UnRegister(key, OnEventFnished); + isFinished = true; this.Finish(); } diff --git a/Assets/Scripts/UI/UITools.cs b/Assets/Scripts/UI/UITools.cs index 602d2f1a..1ceeaa42 100644 --- a/Assets/Scripts/UI/UITools.cs +++ b/Assets/Scripts/UI/UITools.cs @@ -103,37 +103,59 @@ namespace QFramework.Example answers.Remove(item.Name); if (answers.Count <= 0) { - var data = new UIResultTipData(); - data.label = mData.rightLable; - data.isRight = true; - data.callback = () => + if (string.IsNullOrEmpty(mData.rightLable) == false) + { + var data = new UIResultTipData(); + data.label = mData.rightLable; + data.isRight = true; + data.callback = () => + { + if (string.IsNullOrEmpty(mData.rightEvent) == false) + { + StringEventSystem.Global.Send(mData.rightEvent); + } + }; + data.autoHideTime = mData.autoHideResult; + UIKit.OpenPanelAsync(uiData: data, canvasLevel: UILevel.PopUI).ToAction().StartGlobal(); + } + else { if (string.IsNullOrEmpty(mData.rightEvent) == false) { StringEventSystem.Global.Send(mData.rightEvent); } - }; - data.autoHideTime = mData.autoHideResult; - UIKit.OpenPanelAsync(uiData: data, canvasLevel: UILevel.PopUI).ToAction().StartGlobal(); + } } } else { ScoreController.Instance.Add(mData.scoreStepName, mData.wrongScore); - var data = new UIResultTipData(); - data.label = mData.wrongLabel; - data.isRight = false; - data.callback = () => + if (string.IsNullOrEmpty(mData.wrongLabel) == false) + { + var data = new UIResultTipData(); + data.label = mData.wrongLabel; + data.isRight = false; + data.callback = () => + { + + if (string.IsNullOrEmpty(mData.wrongEvent) == false) + { + StringEventSystem.Global.Send(mData.wrongEvent); + } + SetSelected(obj, false); + }; + data.autoHideTime = mData.autoHideResult; + UIKit.OpenPanelAsync(uiData: data, canvasLevel: UILevel.PopUI).ToAction().Start(this); + } + else { if (string.IsNullOrEmpty(mData.wrongEvent) == false) { StringEventSystem.Global.Send(mData.wrongEvent); } SetSelected(obj, false); - }; - data.autoHideTime = mData.autoHideResult; - UIKit.OpenPanelAsync(uiData: data, canvasLevel: UILevel.PopUI).ToAction().Start(this); + } } }