Пример #1
0
        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;
                }
            }
        }
Пример #2
0
 public void CloseUI(UIBase UIName)
 {
     UIHelper.CloseUI(UIName, ui_base);
 }