/// <summary>
        /// 内部调用, 加载AB包
        /// </summary>
        /// <param name="abName"></param>
        /// <returns></returns>
        private IEnumerator LoadAssetBundle(string abName)
        {
            // AB包关系的建立
            if (!_DicABRelation.ContainsKey(abName))
            {
                //建立关系
                ABRelation abRelation = new ABRelation(abName);
                _DicABRelation.Add(abName, abRelation);
            }
            ABRelation tempABRelation = _DicABRelation[abName];     // 获得当前AB包的依赖关系

            // 得到指定AB包所有的依赖关系(查询Manifest清单)
            string[] strDependeceArray = ABManifestLoader.Instance.GetAssetBundleDependce(abName);
            foreach (var depend in strDependeceArray)
            {
                // 添加依赖项
                tempABRelation.AddDependence(depend);
                // 先加载依赖的AB包并设置被依赖关系
                yield return(LoadReference(depend, abName));
            }

            //真正加载AB包
            if (_DicSingleABLoaderCache.ContainsKey(abName))
            {
                yield return(_DicSingleABLoaderCache[abName].LoadAssetBundle());
            }
            else
            {
                _CurrentSingleABLoader = new SingleABLoader(abName, CompleteLoadAB);
                _DicSingleABLoaderCache.Add(abName, _CurrentSingleABLoader);
                yield return(_CurrentSingleABLoader.LoadAssetBundle());
            }
        }