Example #1
0
    /// <summary>
    /// 下载AB包
    /// </summary>
    /// <param name="sceneName"></param>
    /// <param name="abName"></param>
    /// <param name="delLoadComplete"></param>
    /// <returns></returns>
    public IEnumerator LoadAssetBundlePack(string sceneName, string abName, DelLoadComplete delLoadComplete)
    {
        if (string.IsNullOrEmpty(sceneName) || string.IsNullOrEmpty(abName))
        {
            Debug.LogError("sceneName   检查+abName    检查");
            yield return(null);
        }
        while (!ABManifestLoader.GetInstance().IsLoadFinish)
        {
            yield return(null);
        }

        manifesObj = ABManifestLoader.GetInstance().GetABManifest();
        if (manifesObj == null)
        {
            Debug.LogError("请先加载清单文件");
            yield return(null);
        }
        if (!_dicAllScene.ContainsKey(sceneName))
        {
            MultiABMgr multiABMgr = new MultiABMgr(sceneName, abName, delLoadComplete);
            _dicAllScene.Add(sceneName, multiABMgr);
        }
        MultiABMgr tmpmultiABMgr = _dicAllScene[sceneName];

        if (tmpmultiABMgr == null)
        {
            Debug.LogError("tmpmultiABMgr  is  null");
        }
        yield return(tmpmultiABMgr.LoadAssetBundle(abName));
    }
Example #2
0
 /// <summary>
 /// 加载AB包中的资源
 /// </summary>
 /// <param name="sceneName"></param>
 /// <param name="abName"></param>
 /// <param name="isCache"></param>
 /// <returns></returns>
 public UnityEngine.Object LoadAsset(string sceneName, string abName, string assetName, bool isCache)
 {
     if (_dicAllScene.ContainsKey(sceneName))
     {
         MultiABMgr multiAB = _dicAllScene[sceneName];
         return(multiAB.LoadAsset(abName, assetName, isCache));
     }
     Debug.LogError("加载AB包中的资源失败" + sceneName);
     return(null);
 }
Example #3
0
 /// <summary>
 /// 释放资源
 /// </summary>
 public void Dispose(string sceneName)
 {
     if (_dicAllScene.ContainsKey(sceneName))
     {
         MultiABMgr multiAB = _dicAllScene[sceneName];
         multiAB.DisposeAllAsset();
     }
     else
     {
         Debug.LogError("释放资源失败" + sceneName);
     }
 }