Hello!
We’re adding LiveOps to our game and we’re building that around Addressables and remote catalogs, but we’re currently hitting a wall when it comes to updating content.
What we’re doing currently is:
- Update the catalog from the remote storage to its latest version
- Check what the total download size would be
- If the download size if greater than 0 (i.e. there are asset bundles that haven’t been cached), prompt the user with a message “Update available of X bytes. Do you want to download?”
- At this point the user can decide to either Skip or Download the new/updated bundles
The problem comes in if, among the bundles to download, there are some bundles that were previously included in the Player build and have now been updated.
In this scenario, if the user decides to Skip the download, when the time comes to load that asset, Addressables will actually automatically download the new version from the remote storage and use that, despite the user not wanting to update.
Even worse, if the user’s device loses Internet connectivity in the meantime, by the time we try to load that asset it will thrown an exception.
Of course I understand that the above happens because the catalog now in use is pointing to the assets on the remote storage, so every time we try to load any of those it will fetch them from there.
My question is: how to revert to the previous catalog version in case the user decides to Skip the update for now?
We would ideally always be using a catalog where all its assets are either local or cached, then use a new catalog only when the user accepts to downloading all of its new remote content in one go.
It seems like a very basic functionality, I feel like we’re missing something very obvious to achieve this.
We’re using Unity 2020.3.26f1 and Addressables 1.18.19.
Thanks in advance!