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);
}
}
}
-------------------------
--若是對您有所幫助,世界便多了一份你我的溫暖
--您的支持將是我的動力,手有餘糧的話,一點點讚賞我將開心不已(一毛錢也是極好的)