Esempio n. 1
0
        private Hashtable ht = null;                        //容器键值对集合



        /// <summary>
        /// 得到实例(单例)
        /// </summary>
        /// <returns></returns>
        public static ResourcesMgr GetInstance()
        {
            if (_Instance == null)
            {
                _Instance = new GameObject("_ResourceMgr").AddComponent <ResourcesMgr>();
            }
            return(_Instance);
        }
Esempio n. 2
0
        /// <summary>
        /// 加载指定名称的“UI窗体”
        /// 功能:
        ///    1:根据“UI窗体名称”,加载预设克隆体。
        ///    2:根据不同预设克隆体中带的脚本中不同的“位置信息”,加载到“根窗体”下不同的节点。
        ///    3:隐藏刚创建的UI克隆体。
        ///    4:把克隆体,加入到“所有UI窗体”(缓存)集合中。
        ///
        /// </summary>
        /// <param name="uiFormName">UI窗体名称</param>
        private BaseUIForm LoadUIForm(string uiFormName)
        {
            Debug.Log(uiFormName);
            string     strUIFormPaths   = null;             //UI窗体路径
            GameObject goCloneUIPrefabs = null;             //创建的UI克隆体预设
            BaseUIForm baseUiForm       = null;             //窗体基类


            //根据UI窗体名称,得到对应的加载路径
            _DicFormsPaths.TryGetValue(uiFormName, out strUIFormPaths);
            Debug.Log(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;

                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
Esempio n. 3
0
        /// <summary>
        /// 加载与显示UI窗体
        /// 功能:
        ///    1:根据“UI窗体预设”名称,加载预设克隆体。
        ///    2:预设克隆体添加UI“根节点”为父节点。
        ///    3:隐藏刚创建的UI克隆体。
        ///    4:新创建的“UI窗体”,加入“UI窗体缓存”中
        /// </summary>
        private BaseUIForms LoadUIForms(string strUIFormsName)
        {
            string      strUIFormsPaths = null;             //UI窗体的路径
            GameObject  goCloneUIPrefab = null;             //克隆的"窗体预设"
            BaseUIForms baseUIForm;                         //UI窗体


            //得到UI窗体的路径
            _DicUIFormsPaths.TryGetValue(strUIFormsName, out strUIFormsPaths);

            //加载指定路径的“UI窗体”
            if (!string.IsNullOrEmpty(strUIFormsPaths))
            {
                goCloneUIPrefab = ResourcesMgr.GetInstance().LoadAsset(strUIFormsPaths, false);
            }

            //设置“UI窗体”克隆体的父节点,以及隐藏处理与加入“UI窗体缓存”中
            if (_CanvasTransform != null && goCloneUIPrefab != null)
            {
                baseUIForm = goCloneUIPrefab.GetComponent <BaseUIForms>();
                if (baseUIForm == null)
                {
                    Log.Write(GetType() + string.Format("/LoadUIForms()/ baseUIForm==null!,请先确认克隆对象上是否加载了BaseUIForms的子类。参数 strUIFormsName='{0}' ", strUIFormsName), Log.Level.High);
                    return(null);
                }
                switch (baseUIForm.CurrentUIType.UIForms_Type)
                {
                case UIFormsType.Normal:
                    goCloneUIPrefab.transform.SetParent(_CanTransformNormal, false);
                    break;

                case UIFormsType.Fixed:
                    goCloneUIPrefab.transform.SetParent(_CanTransformFixed, false);
                    break;

                case UIFormsType.PopUp:
                    goCloneUIPrefab.transform.SetParent(_CanTransformPopUp, false);
                    break;

                default:
                    break;
                }

                goCloneUIPrefab.SetActive(false);
                //新创建的“UI窗体”,加入“UI窗体缓存”中
                _DicALLUIForms.Add(strUIFormsName, baseUIForm);
                return(baseUIForm);
            }
            else
            {
                Log.Write(GetType() + string.Format("/LoadUIForms()/‘_CanvasTransform’ Or ‘goCloneUIPrefab’==NULL!  , 方法参数 strUIFormsName={0},请检查!", strUIFormsName), Log.Level.High);
            }

            Log.Write(GetType() + string.Format("/LoadUIForms()/ 出现不可预知错误,请检查! 方法参数 strUIFormsName={0} ", strUIFormsName), Log.Level.High);
            return(null);
        }
Esempio n. 4
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);
            }
        }
        /// <summary>
        /// 加载指定名称的UI窗体
        /// 功能:
        /// 1.根据“UI窗体名称”,加载预设克隆体。
        /// 2.根据不同预设克隆体中带的脚本中不同的“位置信息”,加载到根窗体下不同的节点。
        /// 3.隐藏刚创建的UI克隆体(不知道刚创建时是否显示)。
        /// 4.把克隆体,加载到“所有UI窗体”缓存集合中
        /// </summary>
        /// <param name="uiFormName">窗体的名称</param>
        private BaseUIForm LoadUIForm(string uiFormName)
        {
            string     strUIFormPath   = null;  //UI窗体查询路径
            GameObject goCloneUIPrefab = null;  //得到创建的UI克隆体预设
            BaseUIForm baseUIForm;              //窗体基类

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

            //设置“UI克隆体”的父节点(根据克隆体中带的脚本中的不同位置信息)
            if (_TraCanvasTransform != null && goCloneUIPrefab != null)
            {
                //利用了C#的动态多态性,加载的实际上是具体的子类
                baseUIForm = goCloneUIPrefab.GetComponent <BaseUIForm>();

                if (baseUIForm != null)
                {
                    //switch当前位置信息
                    switch (baseUIForm.CurrentUIType.UIForms_Type)
                    {
                    case UIFormType.Normal:                             //普通窗体结点
                        goCloneUIPrefab.transform.SetParent(_TraNormal, false);
                        break;

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

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

                    //设置克隆体的隐藏
                    goCloneUIPrefab.SetActive(false);
                    //把克隆体,加载到“所有UI窗体”缓存集合中
                    _DicAllUIForms.Add(uiFormName, baseUIForm);
                    return(baseUIForm);
                }
                Debug.LogWarning("baseUIForm == null!,请写确认窗体预设对象中是否加载了baseUIForm的子类脚本!");
            }
            Debug.LogWarning("_TraCanvasTransform == null 或者 goCloneUIPrefabs == null!" + "\tuiFormName:" + uiFormName);
            return(null);
        }
 /// <summary>
 /// 初始化加载(根UI窗体)Canvas预设
 /// </summary>
 private void InitRootCanvasLoading()
 {
     //使用对象缓冲管理器脚本
     ResourcesMgr.GetInstance().LoadAsset(SysDefine.PATH_Canvas, false);
 }
Esempio n. 7
0
 //初始化加载(根UI窗体)Canvas预设
 private void InitRootCanvasLoading()
 {
     ResourcesMgr.GetInstance().LoadAsset(SysDefine.SYS_PATH_CANVAS, false);
 }