我有340个精灵,我想像漫画书一样展示它们。漫画书共有39章,每章约有6-10张图片。
我注意到如果文件resources.assets大于2Gb,Unity不允许从Resources文件夹加载资源,所以我将所有资源分成两组:第一组图像保留在Resources文件夹中,第二组图像保留在Resources文件夹中被合并到AssetBundle。
所以现在如果我想看第一章它会加载第一章的图片,如果我继续选择第二章,它会从第一章卸载图像并从第二章加载图像。但如果我想再次看到第一章,那么有两种情况。
如果第一章中的图像是从Resources文件夹加载的 - 好吧,它只是再加载它们。
如果图像是从AssetBundle加载的 - 它不能再次加载这些图像,因为当我从第一章切换到第二章时,它从第一章卸载了资源,现在它们已被删除。
那么如何使用AssetBundle修复第二种情况并删除资源?我一直无法将所有未使用的资源保留在内存中。
答案 0 :(得分:1)
只需使用WWW类再次加载资产包,就像之前一样。你必须让你的应用等到加载完成。您应该在加载时显示加载弹出窗口。
在协程中有类似的东西:
WWW www = WWW.LoadFromCacheOrDownload (url, 1);
yield return www;
AssetBundle bundle = www.assetBundle;
AssetBundleRequest request = bundle.LoadAssetAsync ("img1", typeof(Texture2D));
yield return request;
Texture2D img = request.asset as Texture2D ;