public static void HandlerUI(UIBase _uibase, UILayerNew layer, UIOpenType openType, Dictionary <UILayerNew, List <UIBase> > ui_base) { List <UIBase> layerQueue = null; if (ui_base.ContainsKey(layer)) { layerQueue = ui_base[layer]; } else { layerQueue = new List <UIBase>(); ui_base.Add(layer, layerQueue); } switch (layer) { case UILayerNew.GameUI: _uibase.GameObject.transform.SetParent(Game.Scene.GetComponent <UIManagerComponent>().GameUI, false); break; case UILayerNew.Fixed: _uibase.GameObject.transform.SetParent(Game.Scene.GetComponent <UIManagerComponent>().Fixed, false); break; case UILayerNew.Normal: _uibase.GameObject.transform.SetParent(Game.Scene.GetComponent <UIManagerComponent>().Normal, false); break; case UILayerNew.TopBar: _uibase.GameObject.transform.SetParent(Game.Scene.GetComponent <UIManagerComponent>().TopBar, false); break; case UILayerNew.PopUp: _uibase.GameObject.transform.SetParent(Game.Scene.GetComponent <UIManagerComponent>().PopUp, false); break; case UILayerNew.GuideUi: _uibase.GameObject.transform.SetParent(Game.Scene.GetComponent <UIManagerComponent>().GuideUI, false); break; default: throw new ArgumentOutOfRangeException(nameof(layer), layer, null); } UIBase lastUibase = layerQueue.Count == 0? null : layerQueue[layerQueue.Count - 1]; if (lastUibase != null) { switch (openType) { case UIOpenType.Stack: lastUibase.Hidden(); layerQueue.Remove(lastUibase); layerQueue.Add(_uibase); break; case UIOpenType.Replace: lastUibase.OnClose(); layerQueue.Remove(lastUibase); layerQueue.Add(_uibase); break; } } else { switch (openType) { case UIOpenType.Stack: layerQueue.Add(_uibase); break; case UIOpenType.Replace: layerQueue.Add(_uibase); break; } } }
public void CloseUI(UIBase UIName) { UIHelper.CloseUI(UIName, ui_base); }