Unity3D中如何组织资源的加载和卸载?
How to organize resources loading and unloading in Unity3D?
我有 340 个精灵,我想像漫画书一样展示它们。漫画一共39章,每章大概有6-10张图。
我注意到如果文件 resources.assets 大于 2Gb,Unity 不允许从 Resources 文件夹加载资源,所以我将所有资源分成两组:第一组图像留在 Resources 文件夹中,第二组组合成AssetBundle。
现在,如果我想看第一章,它会加载第一章的图片,如果我继续 select 第二章,它会卸载第一章的图片,并从第二章。但是如果想重看第一章的话,有两种情况。
如果第一章的图像是从 Resources 文件夹加载的 - 好吧,它只是再次加载它们。
如果图像是从 AssetBundle 加载的 - 它不能再次加载这些图像,因为当我从第一章切换到第二章时,它卸载了第一章的资源,现在它们已被删除。
那么如何解决第二种情况,AssetBundle 和删除的资源?我无法一直将所有未使用的资源保存在内存中。
只需像以前一样使用 WWW class 再次加载资产包。您将不得不让您的应用等待加载完成。您应该在加载时显示加载弹出窗口。
协同程序中的类似内容:
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 ;
我有 340 个精灵,我想像漫画书一样展示它们。漫画一共39章,每章大概有6-10张图。
我注意到如果文件 resources.assets 大于 2Gb,Unity 不允许从 Resources 文件夹加载资源,所以我将所有资源分成两组:第一组图像留在 Resources 文件夹中,第二组组合成AssetBundle。
现在,如果我想看第一章,它会加载第一章的图片,如果我继续 select 第二章,它会卸载第一章的图片,并从第二章。但是如果想重看第一章的话,有两种情况。
如果第一章的图像是从 Resources 文件夹加载的 - 好吧,它只是再次加载它们。
如果图像是从 AssetBundle 加载的 - 它不能再次加载这些图像,因为当我从第一章切换到第二章时,它卸载了第一章的资源,现在它们已被删除。
那么如何解决第二种情况,AssetBundle 和删除的资源?我无法一直将所有未使用的资源保存在内存中。
只需像以前一样使用 WWW class 再次加载资产包。您将不得不让您的应用等待加载完成。您应该在加载时显示加载弹出窗口。
协同程序中的类似内容:
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 ;