一.加载AB包(根据路径验证CRC码然后加载AB包)
void TestLoadAB()
{
//反序列化获取crc
string xmlPath = Application.streamingAssetsPath + "/AssetbundleConfig.xml";
FileStream fs = new FileStream(xmlPath, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
XmlSerializer xs = new XmlSerializer(typeof(AssetBundleConfig));
AssetBundleConfig testSerilize = (AssetBundleConfig)xs.Deserialize(fs);
fs.Close();
string path = "Assets/GameData/Ceshi/Attack.prefab";
uint crc = Crc32.GetCrc32(path);
ABBase aBBase = null;
for (int i = 0; i < testSerilize.ABList.Count; i++)
{
if (testSerilize.ABList[i].Crc==crc)
{
aBBase = testSerilize.ABList[i];
}
}
//加载依赖
for (int i = 0; i < aBBase.ABDependce.Count; i++)
{
AssetBundle.LoadFromFile(Application.streamingAssetsPath + "/" + aBBase.ABDependce[i]);
}
//加载ab包
AssetBundle assetBundle = AssetBundle.LoadFromFile(Application.streamingAssetsPath + "/" + aBBase.ABName);
GameObject gameObject=GameObject.Instantiate(assetBundle.LoadAsset<GameObject>(aBBase.AssetName));
}