using System.Collections; using System.Collections.Generic; using UnityEngine; using QFramework; using System; using QFramework.Example; using System.Linq; public class UIToolsAction : IAction { public ulong ActionID { get; set; } public bool Deinited { get; set; } public bool Paused { get; set; } public ActionStatus Status { get; set; } private static readonly SimpleObjectPool mPool = new SimpleObjectPool(() => new UIToolsAction(), null, 10); 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 = 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; } public void Deinit() { if (!Deinited) { Deinited = true; mPool.Recycle(this); } } public void OnExecute(float dt) { } public void OnFinish() { } public void OnStart() { UIToolsData data = new UIToolsData(); data.answer = answer; data.devices = devices.Split(',').ToList(); data.rightEvent = rightEvent; data.rightLable = rightLabel; data.wrongLabel = wrongLabel; data.wrongEvent = wrongEvent; float.TryParse(rightScore, out data.rightScore); float.TryParse(wrongScore, out data.wrongScore); data.scoreStepName = scoreStepName; bool.TryParse(setActive, out data.SetActive); if (float.TryParse(autoHide, out data.autoHideResult) == false) { data.autoHideResult = -1; } UIKit.OpenPanelAsync(uiData: data, canvasLevel: UILevel.PopUI).ToAction().StartGlobal(() => this.Finish()); } public void Reset() { Status = ActionStatus.NotStart; Paused = false; } }