How do I compare local and remote asset bundle versions without actually downloading the asset bundle?
What I'm trying to do
I'm working on a sort of portal to showcase several of the projects my organization has made in Unity. To keep it flexible and light, I've designed an architecture using asset bundles:
When the user downloads the portal, all they download is a bootstrap scene that loads in the main menu scene automatically. This keeps the initial download very light and allows them to get going quicker. Also, having everything else in asset bundles maximizes the amount of 3D content we can update after delivery.
When the main menu downloads and loads, the user is presented with a list of projects. Each project is tied to an asset bundle that can be downloaded on-demand. That way, if they are interested in one project and not another, they don't have to waste time and disk space downloading a project they'd never explore.
If they haven't already downloaded a specific project's asset bundle, they are prompted by a button to download it. If they have an older version, they are prompted to update it. If all up-to-date, they are prompted to visit it.
The Problem
The problem I'm having is two-fold:
I'm unsure what is the best library to use to do what I'm trying to do. Currently, there seem to be two ways of downloading asset bundles WWW.LoadFromCacheOrDownload and UnityWebRequest.GetAssetBundle. Not to mention, Unity just teased ResourceManager and addressable assets at Unite 2017 (but that seems far off).
No matter which library I use, neither seems to have a built-in way of checking a local or remote asset bundle version without downloading the bundle itself.
What I've done so far
In the meantime, I've used UWR to download the remote bundle manifest and Regexed for the CRC and hash. Now looking at Caching.IsVersionCached to Regex the local version and compare, but that method is obsolete...
Any ideas?