Example #1
0
 //加载UIPanel对象
 public void LoadPanel(string url, EUIPanelDepth depth, bool isDontDestroyOnLoad, object data, Action callback)
 {
     if (m_UIPanelDic.TryGetValue(url, out UIPanel panel))
     {
         if (panel.isVisible)
         {
             Debug.Log("UIPanel is visible:" + url);
         }
         else
         if (panel.isLoaded)
         {
             callback?.Invoke();
         }
     }
     else
     {
         panel = CreatePanel(url);
         if (panel == null)
         {
             Debug.LogError("UIPanel not exist: " + url);
         }
         else
         {
             panel.data = data;
             panel.isDontDestroyOnLoad = isDontDestroyOnLoad;
             m_UIPanelDic[url]         = panel;
             panel.Load(() =>
             {
                 if (panel.isLoaded)
                 {
                     if (depth == EUIPanelDepth.Banner)
                     {
                         panel.rectTransform.SetParentAndResetTrans(m_bannerCanvas);
                     }
                     else if (depth == EUIPanelDepth.Loading)
                     {
                         panel.rectTransform.SetParentAndResetTrans(m_loadingCanvas);
                     }
                     else
                     {
                         panel.rectTransform.SetParentAndResetTrans(m_defaultCanvas);
                     }
                     callback?.Invoke();
                 }
                 else
                 {
                     m_UIPanelDic.Remove(url);
                 }
             });
         }
     }
 }
Example #2
0
 bool GetUIMessage(Type t, out string url, out EUIPanelDepth depth, out bool isDontDestroyOnLoad)
 {
     url   = "";
     depth = EUIPanelDepth.Default;
     isDontDestroyOnLoad = false;
     foreach (var keyPairValue in m_atrributeDataDic)
     {
         if (keyPairValue.Value.type == t)
         {
             UIAttribute attr = keyPairValue.Value.attribute as UIAttribute;
             if (attr != null)
             {
                 url   = attr.value;
                 depth = attr.depth;
                 isDontDestroyOnLoad = attr.isDontDestroyOnLoad;
                 return(true);
             }
         }
     }
     Debug.LogError($"Cannot found type({t.Name})");
     return(false);
 }
Example #3
0
 public UIAttribute(string url) : base(url)
 {
     depth = EUIPanelDepth.Default;
     isDontDestroyOnLoad = false;
 }
Example #4
0
 public UIAttribute(string url, EUIPanelDepth depth, bool isDontDestroyOnLoad) : base(url)
 {
     this.depth = depth;
     this.isDontDestroyOnLoad = isDontDestroyOnLoad;
 }
Example #5
0
 public UIAttribute(string url, EUIPanelDepth depth) : base(url)
 {
     this.depth          = depth;
     isDontDestroyOnLoad = false;
 }