using UnityEngine; using UnityEngine.UI; using QFramework; using System.Collections.Generic; using System; using System.Linq; using TMPro; using static OperationController; namespace QFramework.Example { public class DragPanelData : UIPanelData { public string DragItemName; public string HieraNames; public string TargetObjs; public string FinishedEvent; } public partial class DragPanel: UIPanel { public List dragUIItems=new List(); public Button NextButton; //public string Finished; protected override void OnInit(IUIData uiData = null) { // please add init code here } //private void OnStepChanged(StepStatusOnChange change) //{ // Hide(); //} protected override void OnOpen(IUIData uiData = null) { mData = uiData as DragPanelData ?? new DragPanelData(); TypeEventSystem.Global.Register(OnModuleQuit).UnRegisterWhenGameObjectDestroyed(gameObject); //TypeEventSystem.Global.Register(OnStepChanged).UnRegisterWhenDisabled(gameObject); NextButton.onClick.RemoveAllListeners(); NextButton.onClick.AddListener(() => { StringEventSystem.Global.Send(mData.FinishedEvent); Hide(); }); dragUIItems.Clear(); Content.transform.RemoveAllChildren(); List DragItem = mData.DragItemName.Split('|')?.ToList(); List ShowNames = mData.HieraNames.Split('|')?.ToList(); List TargetObjs = mData.TargetObjs.Split('|')?.ToList(); var finished = mData.FinishedEvent; for (int i = 0; i < DragItem.Count; i++) { int j = i; var tipItemObj = GameObject.Instantiate(ItemPrefab, Content.transform); tipItemObj.GetComponentInChildren().text = DragItem[j]; tipItemObj.name = ShowNames[j]; tipItemObj.GetComponent().targetName= TargetObjs[j]; tipItemObj.GetComponent().IsFirst = true; dragUIItems.Add(tipItemObj.GetComponent()); } } protected override void OnShow() { Debug.Log("ÏÔʾ"); } protected override void OnHide() { Debug.Log("½áÊø"); } protected override void OnClose() { // StringEventSystem.Global.Send(mData.FinishedEvent); } public void OnModuleQuit(OnModuleQuit arg) { Hide(); } } }