无法解压缩 AssetBundle 'Memory' 的数据。 -- Unity3D AssetBundle 加载
Failed to decompress data for the AssetBundle 'Memory'. -- Unity3D AssetBundle Loading
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 'Memory' 的数据。”我不确定 'Memory' 是否指的是 AssetBundle 名称,因为我的名称是 'log' 那么它是否指的是内存问题?非常感谢任何有关理解此错误并修复它的帮助。
我认为您的问题与构建捆绑包时使用的压缩有关。您可能需要改用 LoadFromMemoryAsync。 https://docs.unity3d.com/ScriptReference/AssetBundle.LoadFromMemoryAsync.html
所以,我已经通过使用 UnityWebRequstAssetBundle as shown here(derHugo 推荐)克服了错误。
我最初使用一个简单的 FTP 服务器来访问资产,它不允许我下载它们(从 Unity,但在浏览器中它工作正常)。然后我转而使用 Flask 服务器,它运行起来非常棒。
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 'Memory' 的数据。”我不确定 'Memory' 是否指的是 AssetBundle 名称,因为我的名称是 'log' 那么它是否指的是内存问题?非常感谢任何有关理解此错误并修复它的帮助。
我认为您的问题与构建捆绑包时使用的压缩有关。您可能需要改用 LoadFromMemoryAsync。 https://docs.unity3d.com/ScriptReference/AssetBundle.LoadFromMemoryAsync.html
所以,我已经通过使用 UnityWebRequstAssetBundle as shown here(derHugo 推荐)克服了错误。
我最初使用一个简单的 FTP 服务器来访问资产,它不允许我下载它们(从 Unity,但在浏览器中它工作正常)。然后我转而使用 Flask 服务器,它运行起来非常棒。