/// <summary> /// 绑定跳转逻辑 /// </summary> /// <param name="selfPanel"></param> /// <param name="btn"></param> /// <typeparam name="T"></typeparam> public static Action Transition <TDstPanel>(this UIPanel selfBehaviour, IUIData uidata = null) where TDstPanel : UIPanel { return(() => { UIMgr.ClosePanel(selfBehaviour.name); UIMgr.OpenPanel <TDstPanel>(uidata); }); }
/// <summary> /// 绑定跳转逻辑 /// </summary> /// <param name="selfPanel"></param> /// <param name="btn"></param> /// <typeparam name="T"></typeparam> public static void BindTransition <TSrcPanel, TDstPanel>(this Button btn) where TSrcPanel : QUIBehaviour where TDstPanel : QUIBehaviour { btn.onClick.AddListener(() => { UIMgr.ClosePanel <TSrcPanel>(); UIMgr.OpenPanel <TDstPanel>(); }); }
/// <summary> /// 关闭,不允许子类调用 /// </summary> void IPanel.Close(bool destroyed) { PanelInfo.UIData = mUIData; mOnClosed.InvokeGracefully(); mOnClosed = null; OnClose(); if (destroyed) { Destroy(gameObject); } mPanelLoader.Unload(); mPanelLoader = null; mUIData = null; mSubPanelInfos.ForEach(subPanelInfo => UIMgr.ClosePanel(subPanelInfo.PanelName)); mSubPanelInfos.Clear(); }