/// <summary> /// 将Panel列表中指定的一个提到最前 /// </summary> /// <param name="panel"></param> public static void FocusPanel(BaseTempSingletonPanel panel) { if (panel == null) { Debug.LogException(new NullReferenceException("panel")); return; } Instance._baseTempSingletonPanels.Remove(panel); foreach (var baseTempSingletonPanel in Instance._baseTempSingletonPanels.Where(baseTempSingletonPanel => baseTempSingletonPanel != panel)) { baseTempSingletonPanel.gameObject.SetActive(false); } Instance._baseTempSingletonPanels.Add(panel); //将panel提到最上 panel.gameObject.SetActive(true); //激活面板 }
public static void DidDestroyPanel(BaseTempSingletonPanel panel) { if (!Instance._baseTempSingletonPanels.Remove(panel)) { Debug.LogError("怎么可能不在列表里,请检查bug隐患"); } if (Instance._baseTempSingletonPanels.Count > 0) { Instance._baseTempSingletonPanels[Instance._baseTempSingletonPanels.Count - 1].gameObject.SetActive(true);//激活最上层Panel } else { Instance.CurrentUI.DidAllPanelDestroy();//所有面板都销毁了,告知UI } }
public static void DidDestroyPanel(BaseTempSingletonPanel panel) { if (!Instance._baseTempSingletonPanels.Remove(panel)) { Debug.LogError("怎么可能不在列表里,请检查bug隐患"); } if (Instance._baseTempSingletonPanels.Count > 0) { Instance._baseTempSingletonPanels.Last().gameObject.SetActive(true);//激活最上层Panel } else { foreach (var ui in Instance._baseUIs.Where(x => x))//激活UI { ui.gameObject.SetActive(true); } } }