using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ABManifestLoader : System.IDisposable
{
AssetBundleManifest _ManifestObj;
string _ManifestPathStr;//清单文件路径
private AssetBundle _ABReadMainfest;//读取AB清单文件的AssetBundle
private ABManifestLoader instance;
public ABManifestLoader GetInstance()
{
if (instance == null)
{
instance = new ABManifestLoader();
}
return instance;
}
public ABManifestLoader()
{
_ManifestPathStr = PathTools.GetABOutPath() + "/" + PathTools.GetPlatformName(); ;
_ABReadMainfest = null;
}
/// <summary>
/// 加载Manifest清单文件
/// </summary>
/// <returns></returns>
public bool LoadManifestObj()
{
_ABReadMainfest = AssetBundle.LoadFromFile(_ManifestPathStr);
_ManifestObj = _ABReadMainfest.LoadAsset<AssetBundleManifest>("AssetbundleManifest");
if (_ManifestObj == null)
{
Debug.LogError(GetType() + "/LoadMainfestFile()/www下载出错,请检查_StrManifestPath=" + _ManifestPathStr );
return false;
}
else
{
return true;
}
}
/// <summary>
/// 获取AssetBundleManifest 系统类实例
/// </summary>
/// <returns></returns>
public AssetBundleManifest GetABManifest()
{
if (_ManifestObj != null)
{
return _ManifestObj;
}
else
{
Debug.LogError(GetType() + "/LoadManifestObj()/出错,_ManifestObj=null,请检查:");
}
return null;
}
/// <summary>
/// //获取所有的Asset Bundle Manifest依赖项
/// </summary>
/// <param name="abname">指定包名称</param>
/// <returns></returns>
public string[] GetAllDepences(string abname)
{
if (_ManifestObj != null && !string.IsNullOrEmpty(abname))
{
return _ManifestObj.GetAllDependencies(abname);
}
return null;
}
public void Dispose()
{
if (_ABReadMainfest != null)
{
_ABReadMainfest.Unload(true);
}
}
}
-------------------------
--若是对您有所帮助,世界便多了一份你我的温暖
--您的支持将是我的动力,手有余粮的话,一点点赞赏我将开心不已(一毛钱也是极好的)