UnityEditor.Editor.finishedDefaultHeaderGUI += OnPostHeaderGUI;
看AB包不下N次了,常看常新,常看常忘,随便写写
老规矩,先走官方文档,这篇写的还可以
这里先不管Resources,讲烂了的东西,要么别用要么放点小东西
主要是现在Unity出了个新管线叫Scriptable Build Pipeline这里,说是建议用这个,emm,建议用
然后YooAsset是用的SBP
其实其他的都无所谓,最主要的是处理依赖,依赖主要是
打包方式只有最适合的,没有【最好】的。
如果是纯的每个文件打个包,那【应该】不会有资源冗余,但是会有十几万个?AB小包,这样每次开个文件打开缓存,IO要爆炸;要么集合成AXP,后话
如果是收集某个打个打包,也OK吧?
感觉最好是根据使用频率来打包?
比如公共图集打一个
新手场景会用得到的一些可以打在一起?
关键是在某段时间内,打开的Bundle个数控制一下
这个strategy值得慢慢研究
加载的时候顺便把所有依赖的Bundle也加载,没啥讲的
一般提供一个ClearAll接口,用来卸载没用的资源,至少YooAsset是这样?
就是看引用,某个引用<=0就可以干掉?
AssetOperationHandle,里面有Provider
ProviderBase,里面有对应的Asset
BundledProvider,里面有BundleLoaderBase
BundleLoaderBase,里面有AssetBundle,还有List
OperationHandleBase
遍历所有资源表中的资源 加入到清单文件中
对于所有的依赖 也加入到清单文件中 如果依赖在资源表中和不在资源表中
遍历所有清单文件,生成资源的Bundle包名,如果资源在资源表中,那么根据资源表的配置生成包名;如果不在,那么根据通用规则,目前是从后往前4层作为包名。
遍历所有的清单文件,找到包名,把资源加入包中,打出资源包。