Exemplo n.º 1
0
 /// <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);
     });
 }
Exemplo n.º 2
0
 /// <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>();
     });
 }
Exemplo n.º 3
0
        /// <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();
        }