/// <summary> /// 关闭界面 /// </summary> /// <param name="wins">WindowBase</param> /// <param name="isDestroy"></param> public void F_CloseUI(WindowBase wins) { T_UIConfig.UI_TYPE type = wins.F_GetUIType(); CloseUIById(wins.F_GetId()); ResetDepth(type); SetFullScreenMask(); }
/// <summary> /// 初始设置 /// </summary> /// <param name="id"></param> /// <param name="ui"></param> /// <param name="type"></param> public void F_SetId(int id, T_UIConfig.E_UI ui, T_UIConfig.UI_TYPE type) { m_id = id; m_ui = ui; m_Type = type; m_config = ConfigManager.UIConfig.GetData(ui); ShowAnimation(); }
/// <summary> /// 通过Id关闭界面 /// </summary> /// <param name="id"></param> /// <param name="isDestroy"></param> public void F_CloseUI(int id) { if (m_UIList.ContainsKey(id)) { T_UIConfig.UI_TYPE type = CheckUIType(GetConfigUI(id)); CloseUIById(id); ResetDepth(type); SetFullScreenMask(); } }
/// <summary> /// 通过 UItype关闭界面 /// </summary> /// <param name="type"></param> /// <param name="isDestroy"></param> public void F_CloseUI(T_UIConfig.UI_TYPE type) { for (int i = m_IdPosList.Count - 1; i >= 0; i--) { int id = m_IdPosList[i]; WindowBase winb = m_UIList[id]; if (winb.F_GetUIType() == type) { CloseUIById(id); } } ResetDepth(type); SetFullScreenMask(); }
/// <summary> /// 通过 eui关闭界面 /// </summary> /// <param name="eui"></param> /// <param name="isDestroy"></param> public void F_CloseUI(T_UIConfig.E_UI eui) { T_UIConfig.UI_TYPE type = CheckUIType(eui); for (int i = m_IdPosList.Count - 1; i >= 0; i--) { int id = m_IdPosList[i]; if (m_UIList.ContainsKey(id)) { WindowBase winb = m_UIList[id]; if (winb.F_GetEUI() == eui) { CloseUIById(id); } } } ResetDepth(type); SetFullScreenMask(); }
/// <summary> /// 根据不同类型获取不同父节点 /// </summary> /// <param name="type">UI类型</param> /// <returns></returns> Transform GetParent(T_UIConfig.UI_TYPE type) { switch (type) { case T_UIConfig.UI_TYPE.UNDER_WIN: return(m_UnderWinListGo); case T_UIConfig.UI_TYPE.WIN: return(m_WinListGo); case T_UIConfig.UI_TYPE.TIP: return(m_TiplistGo); case T_UIConfig.UI_TYPE.TOP: return(m_ToplistGo); default: return(m_WinListGo); } }
/// <summary> /// 获取不同类型的实例个数 /// </summary> /// <param name="uitype"></param> /// <returns></returns> int GetCountByUIType(T_UIConfig.UI_TYPE uitype) { int count = 0; using (var view = m_UIList.GetEnumerator()) { while (view.MoveNext()) { var winbs = view.Current.Value; if (winbs != null) { if (winbs.F_GetUIType() == uitype) { count++; } } } view.Dispose(); } return(count); }
/// <summary> /// 重新设置UI的层级 /// </summary> /// <param name="type"></param> void ResetDepth(T_UIConfig.UI_TYPE currentType) { int undercount = 0; int wincount = 0; int tipcount = 0; int topcount = 0; int id; WindowBase tmpTop = null; for (int i = 0; i < m_IdPosList.Count; i++) { id = m_IdPosList[i]; if (m_UIList.ContainsKey(id)) { WindowBase winbs = m_UIList[id]; if (winbs == null) { continue; } CheckTop(winbs, ref tmpTop); Vector3 localPos = winbs.transform.localPosition; T_UIConfig.UI_TYPE type = winbs.F_GetUIType(); if (type != currentType) { continue; } Canvas canvas = TransformUtil.Add <Canvas>(winbs.gameObject); switch (type) { case T_UIConfig.UI_TYPE.UNDER_WIN: undercount++; winbs.transform.SetSiblingIndex(undercount * 2); localPos.z = m_StartDepth - undercount * m_depth; winbs.transform.localPosition = localPos; canvas.sortingOrder = m_StartDepth * (int)type + undercount * m_depth; winbs.V_SortingOrder = canvas.sortingOrder; break; case T_UIConfig.UI_TYPE.WIN: wincount++; winbs.transform.SetSiblingIndex(wincount * 2); localPos.z = m_StartDepth - wincount * m_depth; winbs.transform.localPosition = localPos; canvas.sortingOrder = m_StartDepth * (int)type + wincount * m_depth; winbs.V_SortingOrder = canvas.sortingOrder; break; case T_UIConfig.UI_TYPE.TIP: tipcount++; winbs.transform.SetSiblingIndex(tipcount * 2); localPos.z = m_StartDepth - tipcount * m_depth; winbs.transform.localPosition = localPos; canvas.sortingOrder = m_StartDepth * (int)type + tipcount * m_depth; winbs.V_SortingOrder = canvas.sortingOrder; break; case T_UIConfig.UI_TYPE.TOP: topcount++; winbs.transform.SetSiblingIndex(topcount * 2); localPos.z = m_StartDepth - topcount * m_depth; winbs.transform.localPosition = localPos; canvas.sortingOrder = m_StartDepth * (int)type + topcount * m_depth; winbs.V_SortingOrder = canvas.sortingOrder; break; } } } if (currentType == T_UIConfig.UI_TYPE.WIN) { CheckHidenWin(); } //设置最上层WIN OnTopWin(tmpTop); }
void SetRootPos(Transform root, T_UIConfig.UI_TYPE type) { Array typeArray = Enum.GetValues(typeof(T_UIConfig.UI_TYPE)); root.localPosition = new Vector3(0, 0, m_StartDepth * (typeArray.Length - (int)type)); }