private void LoadPageCallback(UIBase ub, int uiid) { if (ub != null) { if (ub.IsNeedMask) { if (!m_bgMask.gameObject.activeInHierarchy) { m_bgMask.Show(); } m_bgMask.transform.SetSiblingIndex(-2); } ub.transform.SetAsLastSibling(); if (null != m_curPage) { m_curPage.Close(); } m_curPage = ub; ResMgr.Log(Tag, "LoadCallback", "load ui succ " + ub.GetType().ToString()); } else { ResMgr.LogError(Tag, "LoadCallback", "load ui fail"); } }
public void CloseThis(UIBase _uiBase) { if (_uiBase.Close() == true) { if (uiStack.Count != 0) { var tempUI = uiStack.Pop(); } } }
public static void Close(string uiName, Action callback = null) { UIBase ui = null; if (UIDic.ContainsKey(uiName)) { ui = UIDic[uiName]; ui.Close(); OpenUIDic.Remove(uiName); } }
static int Close(IntPtr L) { try { ToLua.CheckArgsCount(L, 1); UIBase obj = (UIBase)ToLua.CheckObject <UIBase>(L, 1); obj.Close(); return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
/// <summary> /// 检查是否需要关闭前一级UI /// </summary> private static void CheckClosePrevUI(UIBase prevUI, UIBase currUI) { if (currUI is null) { return; } if (!currUI.IsHidePrevious) { return; } if (!ReferenceEquals(null, prevUI)) { prevUI.Close(); } }
/// <summary> /// 关闭指定层上最高的UI /// </summary> private void CloseTopUI() { int order = 0; UIBase target = null; foreach (var uiPair in _uiDic) { int uiOrder = uiPair.Value.SortOrder; if (uiOrder >= order) { target = uiPair.Value; } } if (target != null) { target.Close(); } }
/// <summary> /// 스택의 맨 위에 있는 UI를 닫습니다. /// </summary> public void CloseTop() { UIBase nowUI = null; if (uiStack.Count != 0) { nowUI = uiStack.Pop(); Debug.Log("Pop : " + nowUI.name); if (nowUI.Close() == true) // 정상적으로 닫혔을 때만 { } else // 정상적으로 안닫혔다면 다시 넣기...Push { uiStack.Push(nowUI); } } else { Debug.Log("닫을 UI가 없어"); } }