addressable是unity最新的关于管理热更资源的插件
资源分几种,
1、需要热更的资源,打包bundle包后会上传到各自的服务器上,供玩家下载更新
2、不需要热更,但是需要使用addressable加载的本地资源
3、在resource目录下的资源,
4、其他
这里重点说前两个
需要热更的资源,用remote path
不需要热更的用local path
区别就是本地bundle包会在包里,但不是在resource文件夹下,是在streamAsset目录下,所以打包时不会压缩的,是多大就是多大。所以本地资源要适量。
resource文件夹里的文件过多会影响app启动时长。
资源冗余问题
打AB包问题最多的就是资源应用,导致多个AB包里有同一个资源导致,工体ab包变大,资源冗余。但这个也不是说绝对不好,有些时候是允许适当冗余的。但是我们还是要知道如何去控制。
其实addressable已经为我们做了很多事,自需要我们稍做调整就能解决。下面我们举一个栗子。
A prefab 引用了资源 c,B prefab也引用了资源c。
这个时候A打一个bundle,B打一个bundle。
然后A bundle 和 B bundle 里都会有资源c。
这时候我们自需要把c打成一个bundle,
A bundle 和B bundle就不会有资源c了。
值得注意的是c资源要是自己放在address group里,
而不是通过其他资源引用被迫包含到bundle里
addressable 还是自己的检测工具来帮助用户检测每个bundle里的资源依赖,也能解决一部分。