I have a project that already uses asset bundles. I download assets when the game starts and show them to the user when needed.

I see that Unity provides addressables as new solution for asset management. As its new (not very new as its accessible from 2018.2, but official docs dont say a lot) there is not so much about it on the web.

The main advantage of Addressables is that they make it very easy for your game to acquire a certain asset by name at runtime.

This used to be pretty annoying with asset bundles. First you had to know in which asset bundles that asset was hiding in. Then you had to find out if this asset bundles was already loaded, and when it wasn't you had to load it first. And only then were you able to retrieve the asset with assetBundle.LoadAsset(name).

But with Addressables you just need to know the address string. You can then just do Addressables.LoadAsset<Type>(address); and Unity will automatically find out if the asset and its dependencies need to be loaded from the local filesystem or from a remote server and do so if necessary.

Personally I also don't get it. If you made the game and you saved your content intelligently then knowing where an asset is located is as easy as knowing the filepath to it (rather than a file url). Using the old WWW.LoadFromCacheOrDownload() meant getting ahold of the latest version and loading it was one line of code.

This means that in the old way you have to upload a new asset bundle each time you rebuild it and just place it at the same URL where you placed it before. Job done.

Now you first have to create online projects to generate buckets and keys for the project and buckets so you can then download a CLI to authorize your system before you can then go into Unity and create a URL based of an existing URL you just magically have to know and then augmented with 2 of the API keys you get from the online project under a few submenus deep before you can finally get around to building the asset bundles (hey look, back to where we started) and publish it to the development URL until you are ready to release in which case you build and publish to the release bucket and NOW... now it is so much easier to use because now you just have to know the address string which is sooooooo much easier than knowing the file path you placed your content into.

Soooooo much easier... only not!