using UnityEngine; using UnityEngine.UI; using QFramework; using System.Collections.Generic; using TMPro; using System.Linq; namespace QFramework.Example { public class UIInputData : UIPanelData { public class InputData { public string name; public string var; public string answer; } public class BtnData { public string name; public string clickEvent; public bool checkAnswer; public string wrongLabel; public string wrongEvent; public int wrongCount; public string scoreStepName; public float rightScore = 0; public float wrongScore = 0; public float autoHide = -1; } public string title; public List inputs = new List(); public List btns = new List(); public string finishedEvent; } public partial class UIInput : UIPanel { int curCount = 0; protected override void OnInit(IUIData uiData = null) { // please add init code here } protected override void OnOpen(IUIData uiData = null) { mData = uiData as UIInputData ?? new UIInputData(); curCount = 0; Title.text = mData.title; InputContent.RemoveAllChildren(); BtnContent.RemoveAllChildren(); foreach (var item in mData.inputs) { GameObject input = GameObject.Instantiate(InputItem.gameObject, InputContent); input.name = item.name; input.transform.Find("Name").GetComponent().text = item.name; var inputField = input.transform.Find("Input").GetComponent(); inputField.onEndEdit.AddListener(value => { if (string.IsNullOrEmpty(item.var) == false) { float v = 0; float.TryParse(value, out v); VarController.Instance.Set(item.var, v); } }); } foreach (var item in mData.btns) { GameObject btn = GameObject.Instantiate(BtnItem.gameObject, BtnContent); btn.transform.Find("Label").GetComponent().text = item.name; btn.name = item.name; btn.GetComponent