Says that it will download and ‘cache’ the AssetBundle. Does this mean that it will be stored to the HD zipped or unzipped?
Also. If an AssetBundle gets loaded from Cache. Does it all have to be loaded into memory as how a typical WWW assetbundle does? Or is it streamed from disk like an Uncompressed AssetBundle?
If Cached assetBundles do get streamed from disk, do they get streamed from disk immediately? As in, on first download, will it download it, unzip it, then stream it from disk and not store it in memory?
AssetBundles are stored uncompressed in the cache. If you use WWW.LoadFromCacheOrDownload to load a compressed bundle, it is decompressed as it is copied into the cache.
When you then load the AssetBundle from the cache, it is streamed from disk like an uncompressed AssetBundle.
Yes, the decompression to disk and subsequent streaming from disk happens immediately during the LoadFromCacheOrDownload call.
I notice that is a significant memory spike when the AssetBundle is getting decompressed.
Is it possible that unity could, in the future, support some kind of zip decompression that occurs in a stream and does not cause a memory spike?
You can make your bundles uncompressed by flagging it in BuildAssetBundleOptions. But you are trading download size. Depending on the contents, they can get really big.