Hi everyone.
I am working on mobile project where we are trying to decrease build size. We are already using addressables in our project and we are planning to move most data from local to remote.
But, we already have huge install count and updating current users with remote not good for us.
Basically, can we cache assets with one build and releasing another update that use remote, with this way current users not need to redownload again from remote system, only new users use and download remote data.
Hi @Alikum AssetBundles are only cached when they are downloaded remotely (internally we use UnityWebRequest). We use the UnityEngine.Caching API to cache bundles: Unity - Scripting API: Caching
In this case all users would need to download the remote AssetBundles.
Maybe I can use cache system in one build to cache groups those are local in that build, and next update, I can check if there is any cached group, if so use that, if not check remote source. Is that possible?
Basically, I’m trying to reduce initial download size for new players. If all players use remote system, the cost will be too much for our organization.
Using UnityWebRequest to load the bundles (UnityWebRequestAssetBundle.GetAssetBundle) is generally less performant than the default method (AssetBundle.LoadFromFileAsync). Additionally you cannot switch between using the two methods in different builds (cache the bundles using GetAssetBundle for the initial build, then use LoadFromFileAsync in the second build). LoadFromFileAsync has no way of accessing the AssetBundle cache, only GetAssetBundle does.