Exemplo n.º 1
0
 /// <summary>
 /// 调用AB 包资源(通过ABLoadAssetHelper.cs 进行再次封装)
 /// </summary>
 /// <param name="abPara">AB包函数</param>
 /// <param name="taskComplete">回调委托,传出数据</param>
 /// <returns></returns>
 private IEnumerator LoadABAsset(ABPara abPara, DelTaskComplete taskComplete)
 {
     //调用AB框架ab包
     ABLoadAssetHelper.GetInstance().LoadAssetBundlePack(abPara);
     //AB包是否调用完成
     while (!ABLoadAssetHelper.GetInstance().IsLoadFinish)
     {
         yield return(null);
     }
     //得到(克隆)的UI预设
     UnityEngine.GameObject goCloneUIPrefab = (UnityEngine.GameObject)ABLoadAssetHelper.GetInstance().GetCloneUIPrefab();
     //委托调用
     taskComplete.Invoke(goCloneUIPrefab);
 }
Exemplo n.º 2
0
 /// <summary>
 /// 调用AB框架ab包
 /// </summary>
 /// <param name="abPara"></param>
 public void LoadAssetBundlePack(ABPara abPara)
 {
     //仅仅是加载相同AB包中的不同资源
     if ((abPara.ScenesName==_ScenesName)  && (abPara.AssetBundleName==_AssetBundleName))
     {
         _AssetName = abPara.AssetName;
         LoadABAssetComplete(""); //这里的参数没有实际作用。
     }
     else {
         //参数赋值
         _ScenesName = abPara.ScenesName;
         _AssetBundleName = abPara.AssetBundleName;
         _AssetName = abPara.AssetName;
         //调用ABFW 主API
         StartCoroutine(AssetBundleMgr.GetInstance().LoadAssetBundlePack(_ScenesName, _AssetBundleName, LoadABAssetComplete));
     }
 }
Exemplo n.º 3
0
        /// <summary>
        /// 初始化加载(根UI窗体)Canvas预设
        /// </summary>
        private IEnumerator InitRootCanvasLoading(DelTaskComplete taskComplete)
        {
            //UI 根窗体路径(参数)
            string uiRootFormPaths = string.Empty;

            //从UI预设路径集合中,查询UI根窗体的路径
            _DicFormsPaths.TryGetValue(SysDefine.ROOT_UIFORM, out uiRootFormPaths);

            //从路径(ab包参数)配置文件中,来合成需要的ab包参数
            string[] strTempArray = uiRootFormPaths.Split('|');
            ABPara   abPara       = new ABPara();

            abPara.ScenesName      = strTempArray[0];
            abPara.AssetBundleName = strTempArray[1];
            abPara.AssetName       = strTempArray[2];

            return(LoadABAsset(abPara, taskComplete));
        }
Exemplo n.º 4
0
        //   /// <summary>      UI框架中传统的基于Resources 的本机资源加载方式。
        //   /// 加载指定名称的“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;
        //               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窗体”,且使用“ABFW” 框架,升级改造为可以热更新的AB包的加载
        /// 功能:
        ///    1:根据“UI窗体名称”,加载预设克隆体。
        ///    2:根据不同预设克隆体中带的脚本中不同的“位置信息”,加载到“根窗体”下不同的节点。
        ///    3:隐藏刚创建的UI克隆体。
        ///    4:把克隆体,加入到“所有UI窗体”(缓存)集合中。
        ///
        /// </summary>
        /// <param name="uiFormName">UI窗体名称</param>
        private void LoadUIForm(string uiFormName)
        {
            string strUIFormPaths = null;                   //UI窗体路径

            _UIFormName = uiFormName;
            //根据UI窗体名称,得到对应的加载路径
            _DicFormsPaths.TryGetValue(uiFormName, out strUIFormPaths);
            if (!string.IsNullOrEmpty(strUIFormPaths))
            {
                //从路径配置文件中,来合成需要的ab包参数
                string[] strTempArray = strUIFormPaths.Split('|');
                ABPara   abPara       = new ABPara();
                abPara.ScenesName      = strTempArray[0];
                abPara.AssetBundleName = strTempArray[1];
                abPara.AssetName       = strTempArray[2];

                //初始化加载(根UI窗体) Canvas 预设
                StartCoroutine(LoadABAsset(abPara, LoadUIForm_Process));
            }
        }//Mehtod_end