修复Condition or的bug

This commit is contained in:
shenjianxing 2025-03-26 14:56:09 +08:00
parent 1203cccf31
commit 0f2f49dd01
4 changed files with 50 additions and 16 deletions

View File

@ -43,6 +43,11 @@ namespace QFramework
public ActionStatus Status { get; set; } public ActionStatus Status { get; set; }
public void OnStart() public void OnStart()
{ {
foreach (var item in mCondition)
{
item.OnStart();
}
} }
public void OnExecute(float dt) public void OnExecute(float dt)

View File

@ -44,6 +44,7 @@ namespace QFramework
public void Send(string key) public void Send(string key)
{ {
if (mEvents.TryGetValue(key, out var e)) if (mEvents.TryGetValue(key, out var e))
{ {
var easyEvent = e.As<EasyEvent>(); var easyEvent = e.As<EasyEvent>();
@ -67,6 +68,10 @@ namespace QFramework
} }
} }
public bool HasRegister(string key)
{
return mEvents.ContainsKey(key);
}
public void UnRegister<T>(string key, Action<T> onEvent) public void UnRegister<T>(string key, Action<T> onEvent)
{ {

View File

@ -13,7 +13,7 @@ namespace QFramework
private StrEventCondition() { } private StrEventCondition() { }
string key; string key;
bool isFinished = false;
public static StrEventCondition Allocate(string key) public static StrEventCondition Allocate(string key)
{ {
var conditionAction = mSimpleObjectPool.Allocate(); var conditionAction = mSimpleObjectPool.Allocate();
@ -21,11 +21,12 @@ namespace QFramework
conditionAction.Deinited = false; conditionAction.Deinited = false;
conditionAction.Reset(); conditionAction.Reset();
conditionAction.key = key; conditionAction.key = key;
conditionAction.isFinished = false;
return conditionAction; return conditionAction;
} }
public bool Check() public bool Check()
{ {
return false; return isFinished;
} }
public bool Paused { get; set; } public bool Paused { get; set; }
public bool Deinited { get; set; } public bool Deinited { get; set; }
@ -39,6 +40,7 @@ namespace QFramework
private void OnEventFnished() private void OnEventFnished()
{ {
StringEventSystem.Global.UnRegister(key, OnEventFnished); StringEventSystem.Global.UnRegister(key, OnEventFnished);
isFinished = true;
this.Finish(); this.Finish();
} }

View File

@ -102,6 +102,8 @@ namespace QFramework.Example
ScoreController.Instance.Add(mData.scoreStepName, mData.rightScore); ScoreController.Instance.Add(mData.scoreStepName, mData.rightScore);
answers.Remove(item.Name); answers.Remove(item.Name);
if (answers.Count <= 0) if (answers.Count <= 0)
{
if (string.IsNullOrEmpty(mData.rightLable) == false)
{ {
var data = new UIResultTipData(); var data = new UIResultTipData();
data.label = mData.rightLable; data.label = mData.rightLable;
@ -116,15 +118,26 @@ namespace QFramework.Example
data.autoHideTime = mData.autoHideResult; data.autoHideTime = mData.autoHideResult;
UIKit.OpenPanelAsync<UIResultTip>(uiData: data, canvasLevel: UILevel.PopUI).ToAction().StartGlobal(); UIKit.OpenPanelAsync<UIResultTip>(uiData: data, canvasLevel: UILevel.PopUI).ToAction().StartGlobal();
} }
else
{
if (string.IsNullOrEmpty(mData.rightEvent) == false)
{
StringEventSystem.Global.Send(mData.rightEvent);
}
}
}
} }
else else
{ {
ScoreController.Instance.Add(mData.scoreStepName, mData.wrongScore); ScoreController.Instance.Add(mData.scoreStepName, mData.wrongScore);
if (string.IsNullOrEmpty(mData.wrongLabel) == false)
{
var data = new UIResultTipData(); var data = new UIResultTipData();
data.label = mData.wrongLabel; data.label = mData.wrongLabel;
data.isRight = false; data.isRight = false;
data.callback = () => data.callback = () =>
{ {
if (string.IsNullOrEmpty(mData.wrongEvent) == false) if (string.IsNullOrEmpty(mData.wrongEvent) == false)
{ {
StringEventSystem.Global.Send(mData.wrongEvent); StringEventSystem.Global.Send(mData.wrongEvent);
@ -133,9 +146,18 @@ namespace QFramework.Example
}; };
data.autoHideTime = mData.autoHideResult; data.autoHideTime = mData.autoHideResult;
UIKit.OpenPanelAsync<UIResultTip>(uiData: data, canvasLevel: UILevel.PopUI).ToAction().Start(this); UIKit.OpenPanelAsync<UIResultTip>(uiData: data, canvasLevel: UILevel.PopUI).ToAction().Start(this);
}
else
{
if (string.IsNullOrEmpty(mData.wrongEvent) == false)
{
StringEventSystem.Global.Send(mData.wrongEvent);
}
SetSelected(obj, false);
} }
} }
}
}); });
} }