From 632966423e136c961e5b6243ee671776af253eb9 Mon Sep 17 00:00:00 2001 From: shenjianxing <”315615051@qq.com“> Date: Tue, 14 Jan 2025 18:16:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=A9=E5=B1=95UITools=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E8=87=AA=E5=8A=A8=E5=85=B3=E9=97=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/Actions/ActionHelper.cs | 6 +-- Assets/Scripts/Actions/UIToolsAction.cs | 48 ++++++++++---------- Assets/Scripts/UI/UIResultTip.cs | 29 ++++++++++--- Assets/Scripts/UI/UITools.cs | 3 +- Assets/Scripts/Xml/XmlParser.cs | 58 +++++++------------------ Doc/Xml配置文档.xml | 7 ++- 6 files changed, 71 insertions(+), 80 deletions(-) diff --git a/Assets/Scripts/Actions/ActionHelper.cs b/Assets/Scripts/Actions/ActionHelper.cs index 6f4d1e3f..6770f9d6 100644 --- a/Assets/Scripts/Actions/ActionHelper.cs +++ b/Assets/Scripts/Actions/ActionHelper.cs @@ -111,10 +111,8 @@ public class ActionHelper } case "UITools": { - var strAction = (XMLTool.StringListAction)act; - return UIToolsAction.Allocate(strAction.args[0], strAction.args[1], strAction.args[2], strAction.args[3], - strAction.args[4], strAction.args[5], strAction.args[6], strAction.args[7], - strAction.args[8], strAction.args[9]); + var strAction = (XMLTool.DictionaryAction)act; + return UIToolsAction.Allocate(strAction.args); } case "PointQuestion": return PointQuestionAction.Allocate(act.Value); diff --git a/Assets/Scripts/Actions/UIToolsAction.cs b/Assets/Scripts/Actions/UIToolsAction.cs index c2cb680a..d94afbe7 100644 --- a/Assets/Scripts/Actions/UIToolsAction.cs +++ b/Assets/Scripts/Actions/UIToolsAction.cs @@ -14,35 +14,34 @@ public class UIToolsAction : IAction private static readonly SimpleObjectPool mPool = new SimpleObjectPool(() => new UIToolsAction(), null, 10); - string answer = string.Empty; - string devices = string.Empty; - string setActive = string.Empty; - string rightLabel = string.Empty; - string wrongLabel = string.Empty; - string rightEvent = string.Empty; - string wrongEvent = string.Empty; - string rightScore = string.Empty; - string wrongScore = string.Empty; - string scoreStepName = string.Empty; - public static UIToolsAction Allocate(string devices, string answer, - string setActive, string rightLabel, string wrongLabel, string rightEvent, - string wrongEvent,string rightScore, string wrongScore, string scoreStepName, - System.Action onDelayFinish = null) + string answer; + string devices; + string setActive; + string rightLabel; + string wrongLabel; + string rightEvent; + string wrongEvent; + string rightScore; + string wrongScore; + string scoreStepName; + string autoHide; + public static UIToolsAction Allocate(Dictionary datas, System.Action onDelayFinish = null) { var retNode = mPool.Allocate(); retNode.ActionID = ActionKit.ID_GENERATOR++; retNode.Deinited = false; retNode.Reset(); - retNode.answer = answer; - retNode.devices = devices; - retNode.setActive = setActive; - retNode.rightLabel = rightLabel; - retNode.wrongLabel = wrongLabel; - retNode.rightEvent = rightEvent; - retNode.wrongEvent = wrongEvent; - retNode.rightScore = rightScore; - retNode.wrongScore = wrongScore; - retNode.scoreStepName = scoreStepName; + retNode.answer = datas.ContainsKey("answers") ? datas["answers"] : ""; + retNode.devices = datas.ContainsKey("devices") ? datas["devices"] : ""; + retNode.setActive = datas.ContainsKey("setActive") ? datas["setActive"] : "true"; + retNode.rightLabel = datas.ContainsKey("rightLabel") ? datas["rightLabel"] : ""; + retNode.wrongLabel = datas.ContainsKey("wrongLabel") ? datas["wrongLabel"] : ""; + retNode.rightEvent = datas.ContainsKey("rightEvent") ? datas["rightEvent"] : ""; + retNode.wrongEvent = datas.ContainsKey("wrongEvent") ? datas["wrongEvent"] : ""; + retNode.rightScore = datas.ContainsKey("rightScore") ? datas["rightScore"] : ""; + retNode.wrongScore = datas.ContainsKey("wrongScore") ? datas["wrongScore"] : ""; + retNode.scoreStepName = datas.ContainsKey("scoreStepName") ? datas["scoreStepName"] : ""; + retNode.autoHide = datas.ContainsKey("autoHide") ? datas["autoHide"] : ""; return retNode; } @@ -78,6 +77,7 @@ public class UIToolsAction : IAction float.TryParse(wrongScore, out data.wrongScore); data.scoreStepName = scoreStepName; bool.TryParse(setActive, out data.SetActive); + float.TryParse(autoHide, out data.autoHideResult); UIKit.OpenPanelAsync(uiData: data, canvasLevel: UILevel.PopUI).ToAction().StartGlobal(() => this.Finish()); } diff --git a/Assets/Scripts/UI/UIResultTip.cs b/Assets/Scripts/UI/UIResultTip.cs index 5d685ef9..2683b674 100644 --- a/Assets/Scripts/UI/UIResultTip.cs +++ b/Assets/Scripts/UI/UIResultTip.cs @@ -11,6 +11,7 @@ namespace QFramework.Example { public bool isRight = false; public string label; + public float autoHideTime = -1; public Action callback; } public partial class UIResultTip : UIPanel @@ -44,15 +45,31 @@ namespace QFramework.Example } obj.SetActive(true); obj.transform.Find("Bg/Label").GetComponent().text = mData.label; - Button btn = obj.GetComponent