Exemple #1
0
        //private void Start()
        //{
        //    _LoadObj = new SingleABLoader(_ABName1, LoadComplete);
        //    //加载AB包
        //    StartCoroutine(_LoadObj.LoadAssetBundle());
        //}


        //private void LoadComplete(string abName)
        //{
        //    //加载AB包中的资源
        //    UnityEngine.Object tmpObj = _LoadObj.LoadAsset(_AssetName1, false);
        //    Instantiate(tmpObj);
        //}

        //private void Update()
        //{

        //}

        #endregion

        private void Start()
        {
            SingleABLoader _LoadDependObj = new SingleABLoader(_ABDependName1);

            //加载AB依赖包
            StartCoroutine(_LoadDependObj.LoadAssetBundle());
        }
Exemple #2
0
        //依赖回调函数1
        private void LoadDependComplete1(string abName)
        {
            Debug.Log("依赖包1(贴图宝)加载完毕,加载依赖包2(材质包)");

            SingleABLoader _LoadDependObj2 = new SingleABLoader(_ABDependName2);

            //加载AB依赖包
            StartCoroutine(_LoadDependObj2.LoadAssetBundle());
        }
Exemple #3
0
        /// <summary>
        /// 加载AB包
        /// </summary>
        /// <param name="abName">AssetBundle 名称</param>
        /// <returns></returns>
        public IEnumerator LoadAssetBundler(string abName, Action loadCompleteHandle = null)
        {
            //AB包关系的建立
            if (!_DicABRelation.ContainsKey(abName))
            {
                ABRelation abRelationObj = new ABRelation(abName);

                _DicABRelation.Add(abName, abRelationObj);
            }

            ABRelation tmpABRelationObj = _DicABRelation[abName];

            string[] strDepedenceArray = ABManifestLoader.GetInstance().RetrivalDependce(abName);

            //得到指定AB包所有的依赖关系(查询Manifest清单文件)
            foreach (string item_Depence in strDepedenceArray)
            {
                //添加“依赖”项
                tmpABRelationObj.AddDependence(item_Depence);

                //添加"引用"项 (递归调用)
                yield return(LoadReference(item_Depence, abName));
            }

            //真正加载AB包
            if (m_LoadedAssetBundles.ContainsKey(abName))
            {
                Debug.LogError("这个包已经被加载过了: " + abName);
                //yield return m_LoadedAssetBundles[abName].LoadAssetBundle(loadCompleteHandle);
            }
            else
            {
                _CurrentSingleABLoader = new SingleABLoader(abName);
                //m_LoadedAssetBundles.Add(abName, _CurrentSingleABLoader);
                yield return(_CurrentSingleABLoader.LoadAssetBundle(loadCompleteHandle));
            }
        }//Method_end
Exemple #4
0
 //依赖回调函数2
 private void LoadDependComplete2(string abName)
 {
     Debug.Log("依赖包2(材质包)加载完毕,开始正式加载预设包");
     _LoadObj = new SingleABLoader(_ABName1);
     StartCoroutine(_LoadObj.LoadAssetBundle());
 }