如果一个或多个对象对于另一个包中的对象有引用,则AB(代指AssetBundles,下面同上)可以依赖于其他的AB.如果对象包含对不在任何AB中的对象的引用,怎不会发生依赖关系.在这种情况下,当您构建AB时,bundle所依赖的对象的副本会被复制到包中.如果多个包中的对象包含对同一个对象的引用,而该对象又没分配到一个bundle中,那么每个依赖于该对象的包都将创建自己的对象副本,并将其打到构建的AB中.
如果一个AB包含一个依赖项,那么在加载您试图实例化的对象的之前加载包含这些依赖项的bundle是很重要的.Unity不会尝试自动加载依赖项.(如果一个资源引用到了其他资源,则必须要先读入被引用资源的AssetBundle文件,否则就会发生引用Miss.)
举个栗子:BundleA中的Material引用了BundleB中的Texture,那么在你从BundleA中加载Material之前你要先把BundleB加载到内存,不管你是按什么顺序加载的BundleA和BundleB,重要的是BundleB要在从BundleA加载Material之前加载进内存.
参考:
https://docs.unity3d.com/Manual/AssetBundles-Dependencies.html?_ga=2.168691873.1408835506.1571651191-1030292064.1564583003
https://mp.weixin.qq.com/s/0XFQt8LmqoTxxst_kKDMjw?
UWA的Unity引擎资源管理模块知识Tree
https://mp.weixin.qq.com/s/h8oCMUuwPKSS1Gyw2bP2SQ