public static ABVersion CreateVersion(string rOutPath, ABVersion rOldVersion, AssetBundleManifest rNewABManifest) { ABVersion rVersion = new ABVersion(); rVersion.Entries = new Dict <string, ABVersionEntry>(); string[] rAllAssetbundles = rNewABManifest.GetAllAssetBundles(); for (int i = 0; i < rAllAssetbundles.Length; i++) { ABVersionEntry rAVEntry = new ABVersionEntry(); rAVEntry.Name = rAllAssetbundles[i]; var rOldEntry = rOldVersion != null?rOldVersion.GetEntry(rAllAssetbundles[i]) : null; string rOldMD5 = rOldEntry != null ? rOldEntry.MD5 : string.Empty; string rNewMD5 = GetMD5InManifest(rNewABManifest, rAllAssetbundles[i]); rAVEntry.MD5 = rNewMD5; if (!string.IsNullOrEmpty(rOldMD5) && !rOldMD5.Equals(rNewMD5)) { rAVEntry.Version = GetVersionInABVersion(rOldVersion, rAVEntry.Name) + 1; } else { rAVEntry.Version = GetVersionInABVersion(rOldVersion, rAVEntry.Name); } rAVEntry.Size = GetABSizeInManifest(rOutPath, rAllAssetbundles[i]); rAVEntry.Dependencies = rNewABManifest.GetDirectDependencies(rAllAssetbundles[i]); rVersion.Entries.Add(rAllAssetbundles[i], rAVEntry); } return(rVersion); }
public static int GetVersionInABVersion(ABVersion rVersion, string rABName) { if (rVersion == null) { return(1); } ABVersionEntry rAVEntry = rVersion.GetEntry(rABName); if (rAVEntry == null) { return(1); } return(rAVEntry.Version); }