Пример #1
0
        public override void Show(MessageBoxResquest _request, MessageBoxCallback _listener, int id = -1)
        {
            base.Show(_request, _listener, id);
            UITipMessageBox previous = null;

            if (CheckExitAndShowing(this, out previous))
            {  //There is one Tipe Exit
                if (previous != null)
                {
                    if (previous.gameObject.activeSelf)
                    {
                        previous.Hide();
                    }
                    else
                    {
                        allUITipMessageBoxList.Remove(previous);

                        if (MessageBox.MsgBoxPool != null)
                        {
                            MessageBox.MsgBoxPool.Recycle(previous, MessageBoxResquest.MessageType.TipsBox, (tips) => { tips.Reset(); });
                        }
                    }
                }//if
            }

            allUITipMessageBoxList.Add(this);

            if (gameObject.activeSelf == false)
            {
                gameObject.SetActive(true);
            }
            if (_request == null)
            {
                Hide();
                return;
            }
            ;
            m_TopCanvasTrans.SetParent(_request.m_Parent);                //父节点
            m_TopCanvasTrans.localScale       = _request.m_Scale;         //缩放
            m_TopCanvasTrans.localPosition    = _request.m_WorldPosition; //要显示的位置
            m_TopCanvasTrans.localEulerAngles = _request.m_Angle;         //要显示的位置

            if (_request.m_DispearTime >= 0)
            {
                StartCoroutine(AutoHide(_request.m_DispearTime));
            }

            ShowMsg();
        }
Пример #2
0
 //Find if this object already show one tipMsg
 static bool CheckExitAndShowing(UITipMessageBox current, out UITipMessageBox _previous)
 {
     for (int _dex = 0; _dex < allUITipMessageBoxList.Count; ++_dex)
     {
         if (allUITipMessageBoxList[_dex].gameObject != null)
         {
             if (allUITipMessageBoxList[_dex] != null && allUITipMessageBoxList[_dex].request != null && allUITipMessageBoxList[_dex].
                 request.m_Parent == current.request.m_Parent)
             {
                 _previous = allUITipMessageBoxList[_dex];
                 return(true);
             }//if
         }
     }
     _previous = null;
     return(false);
 }
Пример #3
0
        ///// <summary>
        ///// 所有的模态系统弹框的注册事件  注册前需要检测 CanPopModelMessageBox
        ///// </summary>
        ///// <param name="_msgBox"></param>
        ///// <param name="_isShow">是打开还是关闭</param>
        //public void ModelMessageBoxRegest(BaseMessageBox _msgBox, bool _isShow)
        //{
        //    if (_isShow)
        //    {
        //        allModelMSGBox.Add(_msgBox);
        //        UIManagerModel.GetInstance().ForbiddenUI(true);  //禁用UI
        //    }
        //    else
        //    {
        //        allModelMSGBox.Remove(_msgBox);
        //        GameObject.Destroy(_msgBox.gameObject); //销毁
        //        if (allModelMSGBox.Count < 1)
        //        {
        //            UIManagerModel.GetInstance().ForbiddenUI(false);  //禁用UI
        //        }
        //        else
        //        {
        //            Debug.Log("还有" + allModelMSGBox.Count + "个没有处理");
        //        }
        //    }
        //}



        ///// <summary>
        ///// 检测是否可以弹出模态框
        ///// </summary>
        ///// <param name="_box"></param>
        ///// <param name="hideSameLevel">是否隐藏相同层显示当前层</param>
        ///// <returns></returns>
        //public bool CanPopModelMessageBox(MessageBoxLevel level, bool hideSameLevel)
        //{
        //    for (int _index = 0; _index < allModelMSGBox.Count; _index++)
        //    {
        //        if (hideSameLevel)
        //        { //隐藏同级别的
        //            if (allModelMSGBox[_index].GetBoxLevel() == level)
        //            {
        //                allModelMSGBox[_index].Hide(); //隐藏同级别的
        //            }
        //            else if (allModelMSGBox[_index].GetBoxLevel() > level)
        //            { //有更高级别的弹框
        //                return false;
        //            }
        //        }
        //        else
        //        {
        //            if (allModelMSGBox[_index].GetBoxLevel() >= level)
        //            {
        //                return false;  //有相同级别或者更高的其他模态框
        //            }
        //        }//esle
        //    }
        //    return true;

        //}



        #region 场景切换 /切换账号
        void OnSceneChange(string _newSecneName)
        {
            UITipMessageBox.ClearAllTips();
        }