private Hashtable ht = null; //容器键值对集合 /// <summary> /// 得到实例(单例) /// </summary> /// <returns></returns> public static ResourcesMgr GetInstance() { if (_Instance == null) { _Instance = new GameObject("_ResourceMgr").AddComponent <ResourcesMgr>(); } return(_Instance); }
/// <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
/// <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); }
/// <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); }
//初始化加载(根UI窗体)Canvas预设 private void InitRootCanvasLoading() { ResourcesMgr.GetInstance().LoadAsset(SysDefine.SYS_PATH_CANVAS, false); }