コード例 #1
0
    // 加载依赖关系的包 和 LoadAssetBundle 形成递归
    private IEnumerator LoadAssetBundleDepedencies(string bundleName, string refName, LoadProgress loadProgress)
    {
        if (!loadHelper.ContainsKey(bundleName))            // 不存在包
        // 创建依赖关系管理
        {
            IABRelationManager relationMgr = new IABRelationManager();
            relationMgr.Initialize(bundleName, loadProgress);
            if (refName != null)
            {
                relationMgr.AddReference(refName);
            }

            // 保存
            loadHelper.Add(bundleName, relationMgr);

            // 加载包
            yield return(LoadAssetBundle(bundleName));
        }
        else                                                // 存在包

        // 添加依赖关系
        {
            if (refName != null)
            {
                IABRelationManager loader = loadHelper[bundleName];
                loader.AddReference(refName);
            }
        }
    }
コード例 #2
0
 public IEnumerator LoadAssetBundleDependences(string bundleName, string refName, LoaderProgrecess progreces)
 {
     if (loadHelper.ContainsKey(bundleName))
     {
         IABRelationManager loader = new IABRelationManager();
         loader.Initial(bundleName, progreces);
         if (refName != null)
         {
             loader.AddReference(refName);
         }
         loadHelper.Add(bundleName, loader);
         yield return(LoadAssetBundles(bundleName));
     }
     else
     {
         if (refName != null)
         {
             IABRelationManager loader = loadHelper[bundleName];
             loader.AddReference(bundleName);
         }
     }
 }
コード例 #3
0
    public IEnumerator LoadAssetBundleDependences(string bundlePath, string refName, LoaderProgress progress)
    {
        if (!mABRelationDict.ContainsKey(bundlePath))
        {
            IABRelationManager iABRelation = new IABRelationManager();
            iABRelation.Initial(bundlePath, progress);
            //记录被依赖对象
            if (refName != null)
            {
                iABRelation.AddReference(refName);
            }

            mABRelationDict.Add(bundlePath, iABRelation);
            yield return(LoadAssetBundles(bundlePath));
        }
        else
        {
            if (refName != null)
            {
                IABRelationManager iABRelationManager = mABRelationDict[bundlePath];
                iABRelationManager.AddReference(bundlePath);
            }
        }
    }