22
2017
Load AssetBundles with Caching
Small sample script to load assetbundles.
Features:
– It first loads bundle hash from the manifest file on server
– Then uses that hash string as asset bundle loader parameter (to use cached version if available, see docs)
– Instantiate gameobject after loading
*Note: there is some memory leak happening with this script (unity 5.5.3)
Related Posts
8 Comments + Add Comment
Leave a comment
Recent posts
- Favorites in PackageManager
- LudumDare59 : Signal
- Unity Editor: Tree Generator
- Leaf/Foliage Generator Tools (Runs in Browser)
- Testing Unity AI Beta
- Ways to Support UnityCoder Development
- Using UI Slider to Create 5-Star Rating Element
- Game Music Library For Unity (editor plugin)
- Fontastic : Easily Test Fonts in Unity Editor!
- GeoTiff Importer & Terrain Generator for Unity
- Create Baked DropShadow for UI images
- .JP2 Ortho Image Converter to PNG/JPG/TIFF
Recent Comments
- on Mesh Exploder (sources)
- on Sprite Sheet Flip Book Shader
- on Sprite Sheet Flip Book Shader
- on [Asset Store] PolygonCollider2D Optimizer
- on Trajectory Test Scene 2.0
- on Vector3 maths for dummies!
- on UnityHub 3.6.0: Remove Version Control & Cloud Dashboard columns
- on Using RenderDoc with Unity (graphics debugger)
Coin:
CUgDSbRqFcAumDSAcdKDvuXsw26VdkJe8C8WGUQHBAGS
An article by












How to use AssetBundles
https://unity3d.college/2017/06/04/use-assetbundles-assetbundlemanager-update-unity3d-games/
Great post, great script, thanks!
I have a question.
Why do you use random url parameter in line 84?
www = UnityWebRequest.GetAssetBundle(bundleURL + “?r=” + (Random.value * 9999999), hashString, 0);
I would expect it would cause redownloading of the asset no matter if it is cached or not, maybe I am wrong.
Tomasz
yeah, it was added to avoid getting cached bundle information from server, but my understanding was that if the hashString is supplied, it wouldn’t load the whole bundle again (if its locally cached already).
Never actually measured or checked if that’s true.. : D
I wrote a different approach, instead of using UnityWebRequest, I use WebClient to download
encrypted assetbundles as in byte[], and decrypt them, all happens in a seperate thread. And built in caching system won’t work with this approach, so I wrote my own caching system, works just fine so far.
nice! if you want to share, can post to https://github.com/UnityCommunity/UnityLibrary/
Hey mgear,
Thanks a lot for this script, I’ve been struggling to understand how the caching system is working with asset bundles since a too much time, that helped a lot ! 🙂
thanks a lot mgear. Really saved a lot of time. Code worked for me with couple of changes
nice, feel free to post your code or updated lines (if its related to some newer unity api or such changes/fixes)