- Home /
Problem when loading many assetbundles use WWW cache
In an iOS game we're building, we meet with a problem. We have many assetbundles to use on the avatars in the game, and to load them faster, we use WWW.LoadFromCacheOrDownload()
to cache them. But when we load a lot of them in a short time, the game will freeze soon. When debugging the game in XCode, we get informations like
starting www download: file:///var/mobile/Applications/.../Data/Raw/.../<AssetBundleFileName>
Failed to open file at path: /var/mobile/Applications/.../Library/UnityCache/Temp/...
Once it happens, it keeps happening. The freeze issue happens after this error message when the game tries to load another level. And a similar log will be printed for the failure to load the level file.
Another issue related to this one was depicted at http://answers.unity3d.com/questions/484304/a-texturematerial-loading-problem-in-unity-4-iphon.html, where a texture seems to be missing. I guess it's related to the failure of opening a file called sharedassetsX.asset
where X
is a number.
What's interesting is that the problem goes away when we stop using the caching system but, instead, use new WWW()
directly.
Any help or suggestion would be appreciated.
Answer by neoRiley · Jul 05, 2013 at 03:40 PM
We had a similar issue, but never got to the "failed" message, it would just do nothing. The fix was to put in a delay of loading from cache. Simply added a .5f pause before trying to pull from cache and that fixed it.
Our setup preloads assetbundles via the LoadFromCacheOrDownload() method , then immediately unloads them (at this point, they're cached). Then, we were calling for assets immediately following. We suspected a timing issue on iOS and that seemed to be the case for us.
yield return new WaitForSeconds(.5f);
Your answer
Follow this Question
Related Questions
How to import the object from server to unity 2 Answers
How to determine the version number in AssetBundles? 0 Answers
Saving an AssetBundle decompressed 0 Answers
How Unity Generates Cache Hash For AssetBundles 1 Answer
Cannot download large assetbundle with WWW.LoadFromCacheOrDownload on old iOS device 1 Answer