コード例 #1
0
        /// <summary>
        /// 注销并销毁UI
        /// </summary>
        /// <param name="uiId"></param>
        public void UnRegisterUI(object uiId)
        {
            BaseUI ui = CloseUI(uiId);

            if (ui != null)
            {
                ui.OnUnRegister();
                if (uiStack.Contains(uiId))
                {
                    uiStack.Remove(uiId);
                }
                _dictionary.Remove(uiId);
                GameObject.Destroy(ui.gameObject, 0.1f);
            }
        }
コード例 #2
0
 /// <summary>
 /// 注册UI
 /// </summary>
 /// <param name="uiId"></param>
 /// <param name="ui"></param>
 public void RegisterUI(object uiId, BaseUI ui, BaseUI.UiType type)//,BaseUI.Type type)
 {
     if (_dictionary.ContainsKey(uiId))
     {
         Debug.Log(uiId + " 已有相同ID注册");
         return;
     }
     else
     {
         _dictionary.Add(uiId, ui);
     }
     ui.uiID   = uiId;
     ui.uiType = type;
     ui.OnRegister();
     ui.gameObject.SetActive(false);
 }
コード例 #3
0
 /// <summary>
 /// 回退一个Panel_Stack的UI
 /// </summary>
 /// <param name="useAnim"></param>
 /// <param name="coolTime">回退的冷却时间</param>
 public void BackspaceUI(bool useAnim = true, float coolTime = 0)
 {
     if (backspaceUICoolTime.Tick())
     {
         backspaceUICoolTime.Counter(coolTime);
         object uiId = PopStack();
         BaseUI cui  = GetUI(uiId);
         CloseAUI(cui, useAnim);
         uiId = PopStack();
         BaseUI ui = GetUI(uiId);
         if (ui != null)
         {
             OpenAUI(ui, useAnim);
             PushStack(uiId);
         }
     }
 }
コード例 #4
0
        /// <summary>
        /// 打开一个UI
        /// </summary>
        /// <param name="uiId"></param>
        /// <param name="useAnim"></param>
        /// <param name="closeCurrentStackUI">是否关闭上一个入栈的UI</param>
        /// <returns></returns>
        public BaseUI OpenUI(object uiId, bool useAnim = true, bool closeCurrentStackUI = true)
        {
            BaseUI ui = GetUI(uiId);

            if (ui == null)
            {
                Debug.Log(uiId + "UI未注册");
            }
            else
            {
                if (ui.uiType == BaseUI.UiType.PANEL_STACK)
                {
                    if (uiStack.Count > 0)
                    {
                        object preUiId = PopStack();
                        BaseUI preUi   = GetUI(preUiId);
                        if (preUi != null)
                        {
                            PushStack(preUiId);
                            //关闭上一个入栈的UI
                            if (closeCurrentStackUI)
                            {
                                CloseAUI(preUi, useAnim);
                            }
                            else
                            {
                                preUi.OutActive();
                            }
                        }
                    }
                    //入栈一个Panel_Stack类型的UI
                    PushStack(uiId);
                }
                OpenAUI(ui, useAnim);
            }
            return(ui);
        }
コード例 #5
0
 private void CloseAUI(BaseUI ui, bool useAnim)
 {
     ui.OutActive();
     ui.Close(useAnim);
 }
コード例 #6
0
 private void OpenAUI(BaseUI ui, bool useAnim)
 {
     ui.Open(useAnim);
     ui.InActive();
 }
コード例 #7
0
        ///// <summary>
        ///// 打开一个UI
        ///// </summary>
        ///// <param name="uiId"></param>
        //public BaseUI OpenUI(System.Enum uiId,bool useAnim = true)
        //{
        //    return OpenUI(uiId.ToString(),useAnim);
        //}

        /// <summary>
        /// 打开一个UI
        /// </summary>
        /// <param name="ui"></param>
        /// <param name="useAnim"></param>
        /// <returns></returns>
        public BaseUI OpenUI(BaseUI ui, bool useAnim = true)
        {
            return(OpenUI(ui.uiID, useAnim));
        }
コード例 #8
0
        ///// <summary>
        ///// 关闭一个UI
        ///// </summary>
        ///// <param name="uiId"></param>
        //public BaseUI CloseUI(System.Enum uiId, bool useAnim = true)
        //{
        //    return CloseUI(uiId.ToString(), useAnim);
        //}

        /// <summary>
        /// 关闭一个UI
        /// </summary>
        /// <param name="uiName"></param>
        public BaseUI CloseUI(BaseUI ui, bool useAnim = true)
        {
            return(CloseUI(ui.uiID, useAnim));
        }