IEnumerator WWWLoader()
{
WWW bundleRequest = new WWW("*****************");
while(!bundleRequest.isDone)
{
yield return null;
}
AssetBundle bundle = null;
if (bundleRequest.bytesDownloaded > 0)
{
AssetBundleCreateRequest myRequest = AssetBundle.LoadFromMemoryAsync(bundleRequest.bytes);
while(!myRequest.isDone)
{
Debug.Log("loading....");
yield return null;
}
if (myRequest.assetBundle != null)
{
bundle = myRequest.assetBundle;
GameObject model = null;
if (bundle != null)
{
AssetBundleRequest newRequest = bundle.LoadAssetAsync<GameObject>("Log");
while (!newRequest.isDone)
{
Debug.Log("loading ASSET....");
yield return null;
}
model = (GameObject)newRequest.asset;
bundle.Unload(false);
}
}
else
{
Debug.LogError("COULDN'T DOWNLOAD ASSET BUNDLE FROM URL (assetBundle = null)");
}
}
else
{
Debug.LogError("COULDN'T DOWNLOAD ASSET BUNDLE FROM URL (0 bytes)");
}
}这是我加载AssetBundle的代码(我已经删除了URL)。它给出了错误“未能解压缩AssetBundle‘内存’的数据”。我不确定“内存”是否指的是AssetBundle名称,因为我的名称是“log”,那么它是指内存问题吗?任何帮助理解这个错误和修复它是非常感谢的。
发布于 2021-06-24 18:27:40
因此,我已经通过使用UnityWebRequestAssetBundle 如图所示 (由derHugo推荐)克服了错误。
我最初使用一个简单的FTP服务器来访问这些资产,它不允许我下载它们(从联合,但在浏览器中它工作得很好)。然后,我转到使用一个烧瓶服务器,它的工作就像一个魅力。
发布于 2021-06-23 06:24:30
我相信您的问题与在构建包时所使用的压缩有关。您可能需要使用LoadFromMemoryAsync代替。https://docs.unity3d.com/ScriptReference/AssetBundle.LoadFromMemoryAsync.html
https://stackoverflow.com/questions/68004218
复制相似问题