发现AssetBundle读取有个问题
1.读取时你并不知道 assetbundle.LoadAllAssets<GameObject>() 会不会出现问题?
(反正我是崩溃了两次,因为我是从内存加载流的。。。具体你们如果从内存加载就会知道了)
2.如果包内未含有应物体 使用assetbundle.LoadAllAssets<GameObject>() 之后会得到什么
(依旧会返回数组,但长度为0)
所以这个时候最面的防止报错。。。
AssetBundle ab = AssetBundle.LoadFromMemory(item);
yield return ab;
GameObject[] gos = null;
// 防止assetbundle读取出现问题
try
{
gos = ab.LoadAllAssets<GameObject>();
}
catch (Exception ex)
{
Debug.LogError(" >LJason< AssetBundle出现读取问题:" + ex.Message);
gos = new GameObject[0] { };// 给一个空数组
}
yield return gos;
if (gos.Length < 1)
{
Debug.LogError(" >LJason< AssetBundle包内未含有任何模型");
}
else
{
// 做你想做的
}