方法思路:
1:AssetBundle输出到一个目录,这个目录下次打AssetBundle不要删除
2:删除废弃的AssetBundle,例如上次打AssetBundle打出了A(可以包含一个Prefab),这次打AssetBundle却不需要打A(Prefab已经删除)
部分代码:
AssetImporter importer = AssetImporter.GetAtPath(name);
if (importer)
{
importer.assetBundleName = abb.assetBundleName;
}
else
{
//Debug.LogError("importer == null:" + name);
}
BuildPipeline.BuildAssetBundles(androidTempABDir, buildAssetBundleOptions2, target);
总结:
1:经过实践,使用AssetBundleBuild输出到一个目录不能实现差异打包,只能通过这种AssetImporter标记的方式
2:BuildAssetBundleOptions不能有ForceRebuildAssetBundle
3:无需计算MD5是否变化,unity自行会跳过没有变化的AssetBundle打包