/// <summary> /// 打开指定列表UI 并关闭其它UI /// </summary> /// <param name="uiEnum"></param> public void openUIByTypeAndCloseOther(List <UIEnum> uiEnumList) { if (listCanvas == null || listCanvas.Length == 0 || uiEnumList == null || uiEnumList.Count == 0) { return; } int canvasSize = listCanvas.Length; for (int i = 0; i < canvasSize; i++) { bool isOpenUi = false; BaseUIControl itemControl = listCanvas[i]; for (int j = 0; j < uiEnumList.Count; j++) { UIEnum uiEnum = uiEnumList[j]; string uiName = uiEnum.ToString(); if (itemControl.name.Equals(uiName)) { isOpenUi = true; } } if (isOpenUi) { itemControl.openUI(); } else { itemControl.closeUI(); } } }
/// <summary> /// 关闭指定UI /// </summary> /// <param name="uiEnum"></param> public void closeUIByType(UIEnum uiEnum) { if (listCanvas == null || listCanvas.Length == 0) { return; } int canvasSize = listCanvas.Length; for (int i = 0; i < canvasSize; i++) { BaseUIControl itemControl = listCanvas[i]; string uiName = uiEnum.ToString(); if (itemControl.name.Equals(uiName)) { itemControl.closeUI(); } } }
/// <summary> /// 获取UI /// </summary> /// <param name="uiName"></param> public T getUIByType <T>(UIEnum uiEnum) where T : BaseUIControl { if (listCanvas == null || listCanvas.Length == 0) { return(null); } int canvasSize = listCanvas.Length; for (int i = 0; i < canvasSize; i++) { BaseUIControl itemCanvas = listCanvas[i]; string uiName = uiEnum.ToString(); if (itemCanvas.name.Equals(uiName)) { return((T)itemCanvas); } } return(null); }
/// <summary> /// UI是否展示 /// </summary> public bool isShowUI(UIEnum uiEnum) { if (listCanvas == null || listCanvas.Length == 0) { return(false); } int canvasSize = listCanvas.Length; for (int i = 0; i < canvasSize; i++) { BaseUIControl itemControl = listCanvas[i]; string uiName = uiEnum.ToString(); if (itemControl.name.Equals(uiName)) { return(itemControl.isShowUI()); } } return(false); }
public GameObject OpenUI(UIEnum ui) { GameObject uiNode; //如果当前已打开过的UI列表有,则重新打开 if (OpenedUIs.TryGetValue(ui, out uiNode)) { uiNode.gameObject.SetActive(true); return(uiNode); } //否则从Prefebs中加载 else { string path = string.Format("Prefabs/UI/{0}", ui.ToString()); GameObject UI = Resources.Load(path) as GameObject; uiNode = Instantiate(UI, UIRoot); // uiNode.SetActive(false); OpenedUIs.Add(ui, uiNode); return(uiNode); } }