The flow I see people discussing using is the following
- In your build asset bundles step, grab the hash of each bundle
- Store that on your server somewhere
- Fetch those hashes at runtime
- Use the Caching.IsVersionCached with that hash to detect if you already have a bundle
- If not download the bundle and cache it
- success
If this is how you are supposed to do it, why does the main mainfest(example Android.manifest) which can be loaded into a class AssetBundleManifest, have a function to get the hashes for you: unity doc
I was able to just use that technique up until now, but I have hit a problem where it failed to detect a hash change properly and that function is not giving me back the same hash that I see in one of my other bundles .manifest file
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: a44a4d42247721b8bd6f32531f73f9e3
TypeTreeHash:
serializedVersion: 2
Hash: ea5a42e0fd8ea905efa7aa926a3b8944
I am under the impression that the first value above is what would should match what you had stored on your server.