//加载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); } }); } } }
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); }
public UIAttribute(string url) : base(url) { depth = EUIPanelDepth.Default; isDontDestroyOnLoad = false; }
public UIAttribute(string url, EUIPanelDepth depth, bool isDontDestroyOnLoad) : base(url) { this.depth = depth; this.isDontDestroyOnLoad = isDontDestroyOnLoad; }
public UIAttribute(string url, EUIPanelDepth depth) : base(url) { this.depth = depth; isDontDestroyOnLoad = false; }