Addressable是支持增量加载的。Addressable进行远程加载的时候是使用的UnityWebRequestAssetBundle.GetAssetBundle(url)来下载AssetBundle,在UnityWebRequestAssetBundle是内部支持Caching的,所以当你的AssetBundle已经下载到本地进行缓存过,UnityWebRequestAssetBundle在、再加载同一个AssetBundle的时候就自动从本地进行加载了,具体情况可以查看官方文档。
预先下载的思路大致如下:
在Addressable Settings里面将Disable Catalog Update on Startup勾选上,这样就可以在第一次更新的时候手动判断远程的Catalog是否有更新。如果获取到远程的Catalong有更新之后,再根据刚刚更新的Catalog来下载AssetBundle了。推荐一下黄程大神写的文章,Addressable系统解析及实践经验
上面的代码在Unity编辑器里面跑的时候,那个percentage会各种诡异,有时候会在某一个百分比停留N多时间,不知道是不是Addressable的bug。。。没有试过在真机上跑,所以不确定是不是编辑器独有的问题。