public override void Backward(IUIBase ui)
        {
            if (ui == null)
            {
                return;
            }
            INGUIInterface ngui_base = ui as INGUIInterface;

            if (ngui_base == null)
            {
                return;
            }

            for (int i = 0; i < ngui_base.Panels.Length; i++)
            {
                ms_all_depths.Remove(ngui_base.Panels[i].depth);
                ngui_base.Panels[i].depth = i;
            }
            if (ms_all_depths.Count > 0)
            {
                ms_cur_top_depth = ms_all_depths[0];
            }
            else
            {
                ms_cur_top_depth = MAIN_UI_MAX_DEPTH;
            }
        }
Пример #2
0
    /// <summary>
    /// 实例化界面,并返回当前界面
    /// </summary>
    /// <param UI的名字="uiname"></param>
    /// <returns></returns>
    IUIBase GetCurrentUI(string uiname)
    {
        //遍历是否有对应元素
        foreach (string name in CurrentUI.Keys)
        {
            if (uiname == name)
            {
                return(CurrentUI[uiname]);
            }
        }
        //给新加的UI找画布
        uiParent = transform.Find(ConstData.CanvasName);
        //生成资源中取出的预制体
        GameObject obj = Instantiate(ResourcesManager.Instance.FindUIPrefab(uiname));

        //UI界面名字一致性
        obj.name = uiname;
        //统一父级
        obj.GetComponent <RectTransform>().parent = uiParent;
        //局部坐标
        obj.GetComponent <RectTransform>().localPosition = Vector3.zero;
        //UI的缩放
        obj.GetComponent <RectTransform>().localScale = Vector3.one;
        //取得界面脚本的基础接口
        IUIBase iuibase = obj.GetComponent <IUIBase>();

        //新生成的UI加入CurrentUI的字典
        CurrentUI.Add(uiname, iuibase);
        //返回一个新生成的UI界面
        return(iuibase);
    }
Пример #3
0
 public void AddMask(IUIBase ui_base, UIEventListener.VoidDelegate call_back)
 {
     if (ms_mask_manager != null)
     {
         ms_mask_manager.AddMask(ui_base, call_back);
     }
 }
Пример #4
0
 public static void ClosePopPanel(IUIBase panel)
 {
     if (panel == CurrentPopPanel && _popCloseCor == null)
     {
         _popCloseCor = TaskEngine.StartCoroutine(ExcutePopPanelCloseTask());
     }
 }
Пример #5
0
        public void OnShowMainUI(IUIBase new_ui)
        {
            if (ms_cur_main_ui != null && ms_cur_main_ui != new_ui)
            {
                if (ms_main_ui_stack.Contains(new_ui))
                {
                    m_stack_cache.Clear();

                    m_stack_cache.Push(ms_cur_main_ui);
                    while (ms_main_ui_stack.Count > 0)
                    {
                        IUIBase pop_ui = ms_main_ui_stack.Pop();
                        if (pop_ui == new_ui)
                        {
                            break;
                        }
                        else
                        {
                            m_stack_cache.Push(pop_ui);
                        }
                    }

                    while (m_stack_cache.Count > 0)
                    {
                        IUIBase ui = m_stack_cache.Pop();
                        ms_main_ui_stack.Push(ui);
                    }
                }
                else
                {
                    ms_main_ui_stack.Push(ms_cur_main_ui);
                }
            }
            ms_cur_main_ui = new_ui;
        }
Пример #6
0
    private static IEnumerator ExcutePopPanelCloseTask()
    {
        yield return(CurrentPopPanel.Close());

        CurrentPopPanel = null;
        _popCloseCor    = null;
    }
        public override void Forward(IUIBase ui)
        {
            if (ui == null)
            {
                return;
            }
            INGUIInterface ngui_base = ui as INGUIInterface;

            if (ngui_base == null)
            {
                return;
            }

            ms_all_depths.Sort((s1, s2) => s2 - s1);
            if (ms_all_depths.Count > 0)
            {
                ms_cur_top_depth = ms_all_depths[0];
            }
            for (int i = 0; i < ngui_base.Panels.Length; ++i)
            {
                ngui_base.Panels[i].depth = ms_cur_top_depth + i + 1;
                ms_all_depths.Add(ngui_base.Panels[i].depth);
            }
            ms_cur_top_depth = ms_cur_top_depth + ngui_base.Panels.Length;
        }
Пример #8
0
 public void Backward(IUIBase ui)
 {
     if (m_ui_layer_mng_handler != null)
     {
         m_ui_layer_mng_handler.Backward(ui);
     }
 }
Пример #9
0
 private void OnResume(IUIBase ui)
 {
     if (ui.Pause)
     {
         ui.Pause = false;
         ui.OnEnableUI();
     }
 }
Пример #10
0
 private void OnPause(IUIBase ui)
 {
     if (!ui.Pause)
     {
         ui.Pause = true;
         ui.OnDisableUI();
     }
 }
Пример #11
0
 private void OnCovered(IUIBase ui)
 {
     if (!ui.IsCovered)
     {
         ui.IsCovered = true;
         ui.OnCovered();
     }
 }
Пример #12
0
 private void OnReveal(IUIBase ui)
 {
     if (ui.IsCovered)
     {
         ui.IsCovered = false;
         ui.OnReveal();
     }
 }
Пример #13
0
 public void EnableUI(IUIBase uiBase)
 {
     if (uiBase == null)
     {
         throw new System.ArgumentNullException(nameof(uiBase));
     }
     uiBase.OnEnableUI();
 }
Пример #14
0
 bool IsShow(IUIBase i_ui_base)
 {
     if (i_ui_base == null)
     {
         return(false);
     }
     return(IsShow(i_ui_base.Name));
 }
Пример #15
0
 bool NeedLoadDataBeforeShow(IUIBase ui)
 {
     if (ms_register_manager != null)
     {
         return(ms_register_manager.NeedLoadDataBeforeShow(ui));
     }
     return(false);
 }
Пример #16
0
 public IUIBase OnHideMainUI(IUIBase ui)
 {
     if (ms_cur_main_ui == ui && ms_main_ui_stack.Count > 0)
     {
         ms_cur_main_ui = ms_main_ui_stack.Pop();
         return(ms_cur_main_ui);
     }
     return(null);
 }
Пример #17
0
        public void CallUIMethod(UIName ui_name, string method_name)
        {
            IUIBase ui = GetUI(ui_name);

            if (ui == null)
            {
                return;
            }
            ui.GameObject.SendMessage(method_name);
        }
Пример #18
0
        /// <summary>
        /// 添加ui
        /// </summary>
        /// <param name="ui"></param>
        public void AddUI(IUIBase ui)
        {
            UIBase    temp = ui as UIBase;
            Transform node = temp.transform;

            node.SetParent(transform);
            node.localScale = Vector3.one;
            uis.AddFirst(temp);
            Refresh();
        }
Пример #19
0
 public void OnOpen(IUIBase ui)
 {
     if (openUIs.Contains(ui))
     {
         openUIs.Remove(ui);
     }
     openUIs.AddFirst(ui);
     ui.OnOpen();
     Refresh();
 }
Пример #20
0
 public void OnClose(int id)
 {
     foreach (var item in uiGroups)
     {
         IUIBase ui = item.Value.GetUI(id);
         if (ui != null)
         {
             item.Value.OnClose(ui);
         }
     }
 }
Пример #21
0
 public void OnClose(IUIBase ui)
 {
     if (openUIs.Contains(ui))
     {
         OnCovered(ui);
         OnPause(ui);
         openUIs.Remove(ui);
         ui.OnClose();
         Refresh();
     }
 }
Пример #22
0
 /// <summary>
 /// 移除UI
 /// </summary>
 /// <param name="name"></param>
 public void RemoveUI(string name)
 {
     foreach (var item in uiGroups)
     {
         IUIBase ui = item.Value.GetUI(name);
         if (ui != null)
         {
             item.Value.RemoveUI(ui);
         }
     }
 }
Пример #23
0
 void ShowUIWhenLoaded(IUIBase ui_base, object data = null)
 {
     if (ui_base != null)
     {
         ShowUIAsync(ui_base, data);
     }
     else
     {
         Debug.LogError("ShowUIWhenLoaded, null");
     }
 }
Пример #24
0
 public void UnLockUI(IUIBase i_ui_base, string lock_type)
 {
     if (i_ui_base != null && i_ui_base.Name == UIName.UILock)
     {
         return;
     }
     if (ms_lock_manager != null)
     {
         ms_lock_manager.UnLockUI(lock_type);
     }
 }
Пример #25
0
 /// <summary>
 ///隐藏UI
 /// </summary>
 public void OnClose(string name)
 {
     foreach (var item in uiGroups)
     {
         IUIBase ui = item.Value.GetUI(name);
         if (ui != null)
         {
             item.Value.OnClose(ui);
         }
     }
 }
Пример #26
0
 public void RemoveUI(int id)
 {
     foreach (var item in uiGroups)
     {
         IUIBase ui = item.Value.GetUI(id);
         if (ui != null)
         {
             item.Value.RemoveUI(ui);
         }
     }
 }
Пример #27
0
        public IUIBase ForceGetUI(UIName ui_name, string ui_dir_path = "")
        {
            IUIBase ui = m_ui_res_mgr.GetLoadedUI(ui_name);

            if (ui == null)
            {
                m_ui_res_mgr.LoadUI(ui_name, null, ui_dir_path);
                ui = m_ui_res_mgr.GetLoadedUI(ui_name);
                HideUIAsync(ui);
            }
            return(ui);
        }
Пример #28
0
 bool HasLockUI(IUIBase i_ui_base, string lock_type)
 {
     if (i_ui_base != null && i_ui_base.Name == UIName.UILock)
     {
         return(false);
     }
     if (ms_lock_manager != null)
     {
         return(ms_lock_manager.HasLockUI(lock_type));
     }
     return(false);
 }
Пример #29
0
 public void Forward(IUIBase ui)
 {
     if (ui == null)
     {
         return;
     }
     ms_opened_ui_count++;
     if (ms_layer_manager != null)
     {
         ms_layer_manager.Forward(ui);
     }
 }
Пример #30
0
 public void Backward(IUIBase ui)
 {
     if (ui == null)
     {
         return;
     }
     ms_opened_ui_count--;
     if (ms_layer_manager != null)
     {
         ms_layer_manager.Backward(ui);
     }
 }