Пример #1
0
        /// <summary>
        /// 加载指定名称的“UI窗体”
        /// 功能:
        ///    1:根据“UI窗体名称”,加载预设克隆体。
        ///    2:根据不同预设克隆体中带的脚本中不同的“位置信息”,加载到“根窗体”下不同的节点。
        ///    3:隐藏刚创建的UI克隆体。
        ///    4:把克隆体,加入到“所有UI窗体”(缓存)集合中。
        /// </summary>
        /// <returns>The UIF orm.</returns>
        /// <param name="uiFormName">User interface form name.</param>
        private BaseUIForm LoadUIForm(string uiFormName)
        {
            string     strUIFormPaths   = null; //UI窗体路径
            GameObject goCloneUIPrefabs = null; //创建的UI克隆体预设
            BaseUIForm baseUIForm       = null; //窗体基类

            //根据UI窗体名称,得到对应的加载路径
            _DicFormsPaths.TryGetValue(uiFormName, out strUIFormPaths);
            //根据UI窗体名称,加载预设克隆体
            if (!string.IsNullOrEmpty(strUIFormPaths))
            {
                goCloneUIPrefabs = ResourcesMgr.GetInstance().LoadAsset(strUIFormPaths, false);
            }
            //设置UI克隆体的父节点
            if (_TraCanvasTransform != null && goCloneUIPrefabs != null)
            {
                baseUIForm = goCloneUIPrefabs.GetComponent <BaseUIForm>();
                if (baseUIForm == null)
                {
                    Debug.Log("baseUIForm == null");
                    return(null);
                }
                switch (baseUIForm.CurrentUIType.UIForms_Type)
                {
                case UIFormType.Normal:                     //普通窗体节点
                    goCloneUIPrefabs.transform.SetParent(_TraNormal, false);
                    break;

                case UIFormType.Fixed:                      //固定窗体节点
                    goCloneUIPrefabs.transform.SetParent(_TraFixed, false);
                    break;

                case UIFormType.Popup:                      //弹出窗体节点
                    goCloneUIPrefabs.transform.SetParent(_TraPopup, false);
                    break;

                default:
                    break;
                }
                //设置隐藏
                goCloneUIPrefabs.SetActive(false);
                //把克隆体,加入到“所有UI窗体”(缓存)集合中。
                _DicAllUIForms.Add(uiFormName, baseUIForm);
                return(baseUIForm);
            }
            else
            {
                Debug.Log("_TraCanvasTransform == null || goCloneUIPrefabs == null");
                return(null);
            }
        }
Пример #2
0
        /// <summary>
        /// 显示(打开)UI窗体
        /// 功能:
        /// 1: 根据UI窗体的名称,加载到“所有UI窗体”缓存集合中
        /// 2: 根据不同的UI窗体的“显示模式”,分别作不同的加载处理
        /// </summary>
        /// <param name="uiFormName">UI窗体预设的名称</param>
        public void ShowUIForms(string uiFormName, Action <BaseUIForm> setParamHandler = null)
        {
            BaseUIForm baseUIForms = null;                    //UI窗体基类

            //参数的检查
            if (string.IsNullOrEmpty(uiFormName))
            {
                return;
            }

            //根据UI窗体的名称,加载到“所有UI窗体”缓存集合中
            baseUIForms = LoadFormsToAllUIFormsCatch(uiFormName);
            if (baseUIForms == null)
            {
                return;
            }

            //是否清空“栈集合”中得数据
            if (baseUIForms.CurrentUIType.IsClearStack)
            {
                ClearStackArray();
            }

            //设置参数
            if (setParamHandler != null)
            {
                setParamHandler(baseUIForms);
            }

            //根据不同的UI窗体的显示模式,分别作不同的加载处理
            switch (baseUIForms.CurrentUIType.UIForms_ShowMode)
            {
            case UIFormShowMode.Normal:                     //“普通显示”窗口模式
                //把当前窗体加载到“当前窗体”集合中。
                LoadUIToCurrentCache(uiFormName);
                break;

            case UIFormShowMode.ReverseChange:              //需要“反向切换”窗口模式
                PushUIFormToStack(uiFormName);
                break;

            case UIFormShowMode.HideOther:                  //“隐藏其他”窗口模式
                EnterUIFormsAndHideOther(uiFormName);
                break;

            default:
                break;
            }
        }
Пример #3
0
        /// <summary>
        /// 加载指定名称的“UI窗体”
        /// 功能:
        ///    1:根据“UI窗体名称”,加载预设克隆体。
        ///    2:根据不同预设克隆体中带的脚本中不同的“位置信息”,加载到“根窗体”下不同的节点。
        ///    3:隐藏刚创建的UI克隆体。
        ///    4:把克隆体,加入到“所有UI窗体”(缓存)集合中。
        ///
        /// </summary>
        /// <param name="uiFormName">UI窗体名称</param>
        private BaseUIForm LoadUIForm(string uiFormName)
        {
            GameObject goCloneUIPrefabs = null;             //创建的UI克隆体预设
            BaseUIForm baseUiForm       = null;             //窗体基类

            goCloneUIPrefabs = ResMgr.instance.LoadAsset(uiFormName, false);

            //设置“UI克隆体”的父节点(根据克隆体中带的脚本中不同的“位置信息”)
            if (_TraCanvasTransfrom != null && goCloneUIPrefabs != null)
            {
                baseUiForm = goCloneUIPrefabs.GetComponent <BaseUIForm>();
                if (baseUiForm == null)
                {
                    Debug.Log("baseUiForm==null! ,请先确认窗体预设对象上是否加载了baseUIForm的子类脚本! 参数 uiFormName=" + uiFormName);
                    return(null);
                }
                switch (baseUiForm.CurrentUIType.UIForms_Type)
                {
                case UIFormType.Normal:                     //普通窗体节点
                    goCloneUIPrefabs.transform.SetParent(_TraNormal, false);
                    break;

                case UIFormType.Fixed:                      //固定窗体节点
                    goCloneUIPrefabs.transform.SetParent(_TraFixed, false);
                    break;

                case UIFormType.PopUp:                      //弹出窗体节点
                    goCloneUIPrefabs.transform.SetParent(_TraPopUp, false);
                    break;

                default:
                    break;
                }

                //设置隐藏(注意,改过)
                //goCloneUIPrefabs.SetActive(false);
                //把克隆体,加入到“所有UI窗体”(缓存)集合中。
                _DicALLUIForms.Add(uiFormName, baseUiForm);
                return(baseUiForm);
            }
            else
            {
                Debug.Log("_TraCanvasTransfrom==null Or goCloneUIPrefabs==null!! ,Plese Check!, 参数uiFormName=" + uiFormName);
            }

            Debug.Log("出现不可以预估的错误,请检查,参数 uiFormName=" + uiFormName);
            return(null);
        }//Mehtod_end
Пример #4
0
        /// <summary>
        /// 根据UI窗体的名称,加载到“所有UI窗体”缓存集合中
        /// 功能: 检查“所有UI窗体”集合中,是否已经加载过,否则才加载。
        /// </summary>
        /// <param name="uiFormsName">UI窗体(预设)的名称</param>
        /// <returns></returns>
        private void LoadFormsToAllUIFormsCatch(string uiFormsName)
        {
            BaseUIForm baseUIResult = null;                     //加载的返回UI窗体基类

            _DicALLUIForms.TryGetValue(uiFormsName, out baseUIResult);
            if (baseUIResult == null)
            {
                //加载指定名称的“UI窗体”
                LoadUIForm(uiFormsName);
            }
            else
            {
                //如果没有本语句,则ShowUIForm 会执行无限循环。
                _BaseUIForm = baseUIResult;
            }
        }
Пример #5
0
        /// <summary>
        /// 反转窗体界面关闭
        /// </summary>
        private void ReverseCloseUIForm()
        {
            if (_StaCurrentUIForm.Count >= 2)
            {
                BaseUIForm topUIForm = _StaCurrentUIForm.Pop();
                topUIForm.Hiding();

                BaseUIForm nextUIForm = _StaCurrentUIForm.Peek();
                nextUIForm.Redisplay();
            }
            else if (_StaCurrentUIForm.Count == 1)
            {
                BaseUIForm topUIForm = _StaCurrentUIForm.Pop();
                topUIForm.Hiding();
            }
        }
Пример #6
0
 //反向切换属性窗体的出栈逻辑
 private void PropUIForm()
 {
     if (_StaCurrentUIForms.Count >= 2)
     {
         BaseUIForm topUIForm = _StaCurrentUIForms.Pop();
         topUIForm.Hiding();
         //出栈后,下一个窗体做重新显示
         BaseUIForm nextUIForm = _StaCurrentUIForms.Peek();
         nextUIForm.ReDisplay();
     }
     else if (_StaCurrentUIForms.Count == 1)
     {
         //出栈处理
         BaseUIForm topUIForm = _StaCurrentUIForms.Pop();
         topUIForm.Hiding();
     }
 }
Пример #7
0
        /// <summary>
        /// 公共方法:打开指定名称的窗体
        /// 功能:
        /// 1.加载与判断指定的UI窗体的名称,加载到“所有UI窗体缓冲集合”中。
        /// 2.根据不同的UI窗体的显示模式,分别作不同的加载处理。
        /// </summary>
        /// <param name="uiFormName">窗体的名称</param>
        public void OpenUIForm(string uiFormName)
        {
            //参数检查
            if (string.IsNullOrEmpty(uiFormName))
            {
                return;
            }

            BaseUIForm baseUIForm = null;                 //UI窗体基类

            //根据UI窗体的名称加载到“UI窗体缓冲集合”中
            baseUIForm = LoadUIFormToAll(uiFormName);
            if (baseUIForm == null)
            {
                return;
            }

            //是否清空栈集合中的数据的判断
            if (baseUIForm.CurrentUIType.IsCleanStack)
            {
                CleanStackArray();
            }

            //作不同的加载处理
            //TODO
            switch (baseUIForm.CurrentUIType.UIForms_ShowType)
            {
            //普通类型
            case UIFormShowType.Normal:
                EnterUIForm(uiFormName);
                break;

            //反向切换类型
            case UIFormShowType.ReverseChange:
                PushUIForm(uiFormName);
                break;

            //隐藏其他类型
            case UIFormShowType.HideOther:
                EnterUIForm_HideOther(uiFormName);
                break;
            }
        }
Пример #8
0
        /// <summary>
        /// 显示(打开)UI窗体
        /// 功能:
        /// 1: 根据UI窗体的名称,加载到“所有UI窗体”缓存集合中
        /// 2: 根据不同的UI窗体的“显示模式”,分别作不同的加载处理
        /// </summary>
        /// <param name="uiFormName">UI窗体预设的名称</param>
        public void ShowUIForms(string uiFormName)
        {
            BaseUIForm baseUIForms = null;                    //UI窗体基类

            //参数的检查
            if (string.IsNullOrEmpty(uiFormName))
            {
                return;
            }
            //根据UI窗体的名称,加载到“所有UI窗体”缓存集合中
            baseUIForms = LoadFormsToAllUIFormsCatch(uiFormName);
            if (baseUIForms == null)
            {
                return;
            }

            //一个栈结构跳转到另外一个栈结构 需要清空之前的栈
            if (baseUIForms.CurrentUIType.isClearStack)
            {
                ClearStack();
            }

            //根据不同的UI窗体的显示模式,分别作不同的加载处理
            switch (baseUIForms.CurrentUIType.UIForms_ShowMode)
            {
            case UIFormShowMode.Normal:                     //“普通显示”窗口模式
                //Todo.....
                LoadUIToCurrentCache(uiFormName);
                break;

            case UIFormShowMode.ReverseChange:              //需要“反向切换”窗口模式
                PushUIFormToStack(uiFormName);
                break;

            case UIFormShowMode.HideOther:                  //“隐藏其他”窗口模式
                EnterUIFormHideOthers(uiFormName);
                break;

            default:
                break;
            }
        }
Пример #9
0
        /// <summary>
        /// UI窗体入栈
        /// </summary>
        /// <param name="uiFormName">窗体名称</param>
        private void PushUIFormToStack(string uiFormName)
        {
            BaseUIForm baseUIForm;

            if (_StaCurrentUIForms.Count > 0)
            {
                BaseUIForm topUIForm = _StaCurrentUIForms.Peek();
                topUIForm.Freeze();
            }
            _DicAllUIForms.TryGetValue(uiFormName, out baseUIForm);
            if (baseUIForm != null)
            {
                baseUIForm.Display();
                _StaCurrentUIForms.Push(baseUIForm);
            }
            else
            {
                Debug.Log("baseUIForm == null");
            }
        }
Пример #10
0
 /// <summary>
 /// 反向切换类型的窗体的退出
 /// (反向切换类型的窗体的出栈,退出这个窗体)
 /// </summary>
 private void PopUIForm()
 {
     if (_StaCurrentUIForms.Count > 1)
     {
         //出栈处理
         BaseUIForm topUIForm = _StaCurrentUIForms.Pop();
         //做隐藏处理
         topUIForm.Hiding();
         //下一个窗体重新显示
         BaseUIForm nextUIForm = _StaCurrentUIForms.Peek();
         nextUIForm.Redisplay();
     }
     else if (_StaCurrentUIForms.Count == 1)
     {
         //出栈处理
         BaseUIForm topUIForm = _StaCurrentUIForms.Pop();
         //做隐藏处理
         topUIForm.Hiding();
     }
 }
Пример #11
0
 //(“反向切换”属性)窗体的出栈逻辑
 private void PopUIFroms()
 {
     if (_StaCurrentUIForms.Count >= 2)
     {
         //出栈处理
         BaseUIForm topUIForms = _StaCurrentUIForms.Pop();
         //做隐藏处理
         topUIForms.Hiding();
         //出栈后,下一个窗体做“重新显示”处理。
         BaseUIForm nextUIForms = _StaCurrentUIForms.Peek();
         nextUIForms.Redisplay();
     }
     else if (_StaCurrentUIForms.Count == 1)
     {
         //出栈处理
         BaseUIForm topUIForms = _StaCurrentUIForms.Pop();
         //做隐藏处理
         topUIForms.Hiding();
     }
 }
Пример #12
0
        /// <summary>
        /// 反向切换类型的窗体的进入
        /// (UI窗体的入栈,显示指定名称的窗体)
        /// </summary>
        /// <param name="uiFormName">窗体的名称</param>
        private void PushUIForm(string uiFormName)
        {
            BaseUIForm baseUIForm;                      //UI窗体

            //判断栈集合中,是否有其他的窗体,有则进行冻结处理
            if (_StaCurrentUIForms.Count > 0)
            {
                BaseUIForm topUIForm = _StaCurrentUIForms.Peek();
                topUIForm.Freeze();
            }
            //判断“所有UI窗体”集合是否有指定的UI窗体,有则处理
            _DicAllUIForms.TryGetValue(uiFormName, out baseUIForm);
            if (baseUIForm == null)
            {
                return;
            }

            //把指定的UI窗体入栈
            _StaCurrentUIForms.Push(baseUIForm);
            //显示窗体
            baseUIForm.Display();
        }
Пример #13
0
        /// <summary>
        /// UI窗体入栈
        /// </summary>
        /// <param name="窗体名字"></param>
        private void PushUIFormToStack(string uiFormName)
        {
            BaseUIForm currentUIForm;

            //判断栈集合中 是否有其他窗体 如果有 冻结处理
            if (_StaCurrentUIForm.Count > 0)
            {
                BaseUIForm topUIForm = _StaCurrentUIForm.Peek();
                topUIForm.Freeze();
            }
            //判断UI所有窗体 是否有指定UI 有则处理 没有报错
            _DicALLUIForms.TryGetValue(uiFormName, out currentUIForm);
            if (currentUIForm != null)
            {
                currentUIForm.Display();
                //入栈
                _StaCurrentUIForm.Push(currentUIForm);
            }
            else
            {
                Debug.LogError("UI 加载错误");
            }
        }
Пример #14
0
        /// <summary>
        /// 显示(打开)UI窗体
        /// 1: 根据UI窗体的名称,加载到“所有UI窗体”缓存集合中
        /// 2: 根据不同的UI窗体的“显示模式”,分别作不同的加载处理
        /// </summary>
        /// <param name="uiFormName">UI窗体预设的名称</param>
        public void ShowUIForms(string uiFormName)
        {
            BaseUIForm baseUIForm = null;  //UI窗体基类

            if (string.IsNullOrEmpty(uiFormName))
            {
                return;
            }
            baseUIForm = LoadFormsToAllUIFormsCatch(uiFormName);
            if (baseUIForm == null)
            {
                return;
            }
            //是否清空栈集合中的数据
            if (baseUIForm.CurrentUIType.IsClearStack)
            {
                ClearStackArray();
            }
            switch (baseUIForm.CurrentUIType.UIForms_ShowMode)
            {
            case UIFormShowMode.Normal:
                LoadUIToCurrentCache(uiFormName);
                break;

            case UIFormShowMode.ReverseChange:
                PushUIFormToStack(uiFormName);
                break;

            case UIFormShowMode.HideOther:
                EnterUIFormsAndHideOther(uiFormName);
                break;

            default:
                break;
            }
        }
Пример #15
0
        /// <summary>
        /// 显示(打开)UI窗体
        /// 功能:
        /// 1: 根据UI窗体的名称,加载到“所有UI窗体”缓存集合中
        /// 2: 根据不同的UI窗体的“显示模式”,分别作不同的加载处理
        ///
        ///
        /// 修改记录:
        ///     本方法修改目的是让大量UI窗体可以直接打开相应的目标窗体。
        ///     即不受窗体位置(UIFormType)与窗体显示类型(UIFormShowMode)的限制。
        ///
        ///
        /// </summary>
        /// <param name="uiFormName">UI窗体预设的名称</param>
        /// <param name="IsRedirection">是否直接转向目标窗体</param>
        public IEnumerator ShowUIForm(string uiFormName, bool IsRedirection = false)
        {
            BaseUIForm baseUIForms = null;                    //UI窗体基类

            //参数的检查
            if (string.IsNullOrEmpty(uiFormName))
            {
                yield break;
            }

            //等待UI根窗体初始化完毕
            while (!_IsUIRootNodeInitFinish)
            {
                yield return(null);  //等待
            }

            //根据UI窗体的名称,加载到“所有UI窗体”缓存集合中
            LoadFormsToAllUIFormsCatch(uiFormName);//此时UI预设窗体(根据“位置模式”)已经加载到层级试图的相应位置了

            //等待UI窗体父类对象被赋值
            while (_BaseUIForm == null)
            {
                yield return(null); //等待
            }
            baseUIForms = _BaseUIForm;

            //是否清空“栈集合”中得数据(如果直接转向,则直接清空“栈集合”)
            if (IsRedirection || baseUIForms.CurrentUIType.IsClearStack)//Modify by 20180918
            {
                ClearStackArray();
            }

            //直接转向
            if (IsRedirection) //Adding by 20180918
            {
                //“隐藏其他”窗口模式
                EnterUIFormsAndHideOther(uiFormName);
            }
            else
            {
                //根据不同的UI窗体的显示模式,分别作不同的加载处理
                switch (baseUIForms.CurrentUIType.UIForms_ShowMode)
                {
                case UIFormShowMode.Normal:                     //“普通显示”窗口模式
                    //把当前窗体加载到“当前窗体”集合中。
                    LoadUIToCurrentCache(uiFormName);
                    break;

                case UIFormShowMode.ReverseChange:              //需要“反向切换”窗口模式
                    PushUIFormToStack(uiFormName);
                    break;

                case UIFormShowMode.HideOther:                  //“隐藏其他”窗口模式
                    EnterUIFormsAndHideOther(uiFormName);
                    break;

                default:
                    break;
                }
            }

            //UI窗体父类对象,置空处理,为下一次加载窗体服务
            _BaseUIForm = null;
        }//ShowUIForms()_end
Пример #16
0
        /// <summary>
        /// 加载指定名称的“UI窗体”
        /// 功能:
        ///    1:根据“UI窗体名称”,加载预设克隆体。
        ///    2:根据不同预设克隆体中带的脚本中不同的“位置信息”,加载到“根窗体”下不同的节点。
        ///    3:隐藏刚创建的UI克隆体。
        ///    4:把克隆体,加入到“所有UI窗体”(缓存)集合中。
        ///
        /// </summary>
        /// <param name="uiFormName">UI窗体名称</param>
        private BaseUIForm LoadUIForm(string uiFormName)
        {
            string     strUIFormPaths   = null;             //UI窗体路径
            GameObject goCloneUIPrefabs = null;             //创建的UI克隆体预设
            BaseUIForm baseUiForm       = null;             //窗体基类


            //根据UI窗体名称,得到对应的加载路径
            _DicFormsPaths.TryGetValue(uiFormName, out strUIFormPaths);
            //根据“UI窗体名称”,加载“预设克隆体”
            if (!string.IsNullOrEmpty(strUIFormPaths))
            {
                goCloneUIPrefabs = ResourcesMgr.GetInstance().LoadAsset(strUIFormPaths, false);
            }
            //设置“UI克隆体”的父节点(根据克隆体中带的脚本中不同的“位置信息”)
            if (_TraCanvasTransfrom != null && goCloneUIPrefabs != null)
            {
                baseUiForm = goCloneUIPrefabs.GetComponent <BaseUIForm>();
                if (baseUiForm == null)
                {
                    Debug.Log("baseUiForm==null! ,请先确认窗体预设对象上是否加载了baseUIForm的子类脚本! 参数 uiFormName=" + uiFormName);
                    return(null);
                }
                switch (baseUiForm.CurrentUIType.UIForms_Type)
                {
                case UIFormType.Normal:                     //普通窗体节点
                    goCloneUIPrefabs.transform.SetParent(_TraNormal, false);
                    break;

                case UIFormType.Fixed:                      //固定窗体节点
                    goCloneUIPrefabs.transform.SetParent(_TraFixed, false);
                    break;

                case UIFormType.PopUp:                      //弹出窗体节点
                    goCloneUIPrefabs.transform.SetParent(_TraPopUp, false);
                    break;

                case UIFormType.Tips:
                    goCloneUIPrefabs.transform.SetParent(_TraTips, false);
                    break;

                default:
                    break;
                }
                if (Loadinitialization != null)
                {
                    Loadinitialization(uiFormName, baseUiForm);
                }
                //设置隐藏
                goCloneUIPrefabs.SetActive(false);
                //把克隆体,加入到“所有UI窗体”(缓存)集合中。
                _DicALLUIForms.Add(uiFormName, baseUiForm);

                return(baseUiForm);
            }
            else
            {
                Debug.Log("_TraCanvasTransfrom==null Or goCloneUIPrefabs==null!! ,Plese Check!, 参数uiFormName=" + uiFormName);
            }

            Debug.Log("出现不可以预估的错误,请检查,参数 uiFormName=" + uiFormName);
            return(null);
        }//Mehtod_end
Пример #17
0
        /// <summary>
        /// 加载指定名称的“UI窗体”
        /// 功能:
        ///    1:根据“UI窗体名称”,加载预设克隆体。
        ///    2:根据不同预设克隆体中带的脚本中不同的“位置信息”,加载到“根窗体”下不同的节点。
        ///    3:隐藏刚创建的UI克隆体。
        ///    4:把克隆体,加入到“所有UI窗体”(缓存)集合中。
        ///
        /// </summary>
        /// <param name="uiFormName">UI窗体名称</param>
        private BaseUIForm LoadUIForm(string uiFormName)
        {
            string     strUIFormPaths   = uiFormName;       //UI窗体路径
            GameObject goCloneUIPrefabs = null;             //创建的UI克隆体预设
            BaseUIForm baseUiForm       = null;             //窗体基类


            //根据UI窗体名称,得到对应的加载路径
            //_DicFormsPaths.TryGetValue(uiFormName, out strUIFormPaths);
            //根据“UI窗体名称”,加载“预设克隆体”
            if (!string.IsNullOrEmpty(strUIFormPaths))
            {
                goCloneUIPrefabs = OpenUIPanel(strUIFormPaths);
            }

            UIControlData ctrlData = goCloneUIPrefabs.GetComponent <UIControlData>();
            CBLuaPanel    luaPanel = GetLuaPanel(uiFormName, ctrlData);

            if (luaPanel == null)
            {
                //C# 脚本逻辑
                IBindableUI uiA = Activator.CreateInstance(Type.GetType(uiFormName)) as IBindableUI;
                baseUiForm = uiA as BaseUIForm;
            }
            else
            {
                //Lua 逻辑
                baseUiForm = luaPanel as BaseUIForm;
            }
            baseUiForm.Source = goCloneUIPrefabs;
            if (ctrlData != null)
            {
                ctrlData.BindDataTo(baseUiForm);
            }
            //设置“UI克隆体”的父节点(根据克隆体中带的脚本中不同的“位置信息”)
            if (_TraCanvasTransfrom != null && goCloneUIPrefabs != null)
            {
                //baseUiForm = goCloneUIPrefabs.GetComponent<BaseUIForm>();
                if (baseUiForm == null)
                {
                    Debug.Log("baseUiForm==null! ,请先确认窗体预设对象上是否加载了baseUIForm的子类脚本! 参数 uiFormName=" + uiFormName);
                    return(null);
                }
                baseUiForm.OnReady();

                switch (baseUiForm.CurrentUIType.UIForms_Type)
                {
                case UIFormType.Normal:                     //普通窗体节点
                    goCloneUIPrefabs.transform.SetParent(_TraNormal, false);
                    break;

                case UIFormType.Fixed:                      //固定窗体节点
                    goCloneUIPrefabs.transform.SetParent(_TraFixed, false);
                    break;

                case UIFormType.PopUp:                      //弹出窗体节点
                    goCloneUIPrefabs.transform.SetParent(_TraPopUp, false);
                    break;

                default:
                    break;
                }

                //设置隐藏
                goCloneUIPrefabs.SetActive(false);
                //把克隆体,加入到“所有UI窗体”(缓存)集合中。
                _DicALLUIForms.Add(uiFormName, baseUiForm);
                return(baseUiForm);
            }
            else
            {
                Debug.Log("_TraCanvasTransfrom==null Or goCloneUIPrefabs==null!! ,Plese Check!, 参数uiFormName=" + uiFormName);
            }

            Debug.Log("出现不可以预估的错误,请检查,参数 uiFormName=" + uiFormName);
            return(null);
        }//Mehtod_end
Пример #18
0
 void DisPlay(BaseUIForm baseForm)
 {
     baseForm.Display();
 }