在Unity中打AssetBundle包时,发现一个很有意思的现象:不同电脑打出来的Bundle文件是不一样的。不仅md5值不一样,连manifest中记录的hash值也会不一样。
经分析,应该是各电脑中的缓存内容不一样导致的。问了一圈发现,一般的解决办法是固定一台电脑打AssetBundle包。
但公共组常常会有同时打多个渠道包的需求,如果一个一个顺序打包,显然耗时太长了。所以我们想到把Unity工程中的Library文件夹也加入到版本管理中,将脚本编译后的文件也进行缓存。需要打渠道包时,将Unity工程拉下来,再把Library缓存和脚本缓存也拉下来放到对应的位置中,让Unity不执行资源导入。经测试,此方法可行,打出来的AssetBundle文件是一致的。