using UnityEngine; using UnityEngine.UI; using QFramework; using System.Collections.Generic; using TMPro; using static OperationController; using System; using System.Linq; namespace QFramework.Example { public class UIBtnsData : UIPanelData { public List btns = new List(); public string name; public string pos; public string size; } public partial class UIBtns : UIPanel { protected override void OnInit(IUIData uiData = null) { mData = uiData as UIBtnsData ?? new UIBtnsData(); // please add init code here TypeEventSystem.Global.Register((arg) => Hide()).UnRegisterWhenGameObjectDestroyed(gameObject); } private void OnStepChanged(StepStatusOnChange change) { Hide(); } protected override void OnOpen(IUIData uiData = null) { TypeEventSystem.Global.Register(OnStepChanged).UnRegisterWhenDisabled(gameObject); mData = uiData as UIBtnsData ?? new UIBtnsData(); BtnContent.RemoveAllChildren(); List btnnames = mData.name.Split('|')?.ToList(); List pos = mData.pos.Split('|')?.ToList(); List size = mData.size.Split('|')?.ToList(); for (int i = 0; i < btnnames.Count; i++) { int j = i; GameObject obj = GameObject.Instantiate(BtnPrefab.gameObject, BtnContent); obj.name = btnnames[j]; Vector2 positem = Utility.GetVector2FromStrArray(pos[j]); Vector2 sizeData = Utility.GetVector2FromStrArray(size[j]); obj.transform.Find("Label").GetComponent().text= btnnames[j]; obj.GetComponent().sizeDelta = sizeData; obj.GetComponent().position = positem; } //foreach (var item in mData.btns) //{ // GameObject obj = GameObject.Instantiate(BtnPrefab.gameObject, BtnContent); // obj.name = item; // obj.transform.Find("Label").GetComponent().text = item; // obj.GetComponent