//压缩extendsFoler.txt zipFiles public static void ZipAssetbundles() { HugulaExtensionFolderEditor.instance = null; var zipFiles = HugulaExtensionFolderEditor.instance.ZipFiles; List <string> outZips = new List <string>(); string zipGroupName = "zip_group_{0}.zip"; string zipedName = ""; string zipedPath = ""; List <string> fileToZip = null; List <string> fileToZipFullPath = new List <string>(); List <ABInfo> deleteAbList = new List <ABInfo>(); EditorUtility.DisplayProgressBar("Zip Some Streaming AssetBundle File", "", 0.09f); for (int i = 0; i < zipFiles.Count; i++) { fileToZip = zipFiles[i]; zipedName = string.Format(zipGroupName, i); zipedPath = Path.Combine(CUtils.realStreamingAssetsPath, zipedName); fileToZipFullPath.Clear(); foreach (var p in fileToZip) { string ab = CUtils.GetRightFileName(p); deleteAbList.Add(new ABInfo(ab, 0, 0, 0)); fileToZipFullPath.Add(Path.Combine(CUtils.realStreamingAssetsPath, ab)); } EditorUtility.DisplayProgressBar("Zip AssetBundle File ", zipedName, (float)i / (float)zipFiles.Count); if (ZipHelper.CreateZip(zipedPath, fileToZipFullPath)) { outZips.Add(zipedName); } //delete source assetbundle DeleteStreamingFiles(deleteAbList); } var zipins = ZipConfigs.CreateInstance(); zipins.zipFiles = outZips; EditorUtility.ClearProgressBar(); }
public static void GenerateAssetBundlesUpdateFile(string[] allBundles) { string title = "Generate Update File "; string info = "Compute crc32"; EditorUtility.DisplayProgressBar(title, info, 0.1f); Dictionary <string, object[]> firstCrcDict = new Dictionary <string, object[]>(); HashSet <string> manualFileList = new HashSet <string>(); Dictionary <string, object[]> currCrcDict = new Dictionary <string, object[]>(); Dictionary <string, object[]> diffCrcDict = new Dictionary <string, object[]>(); #region 读取首包 bool firstExists = SplitPackage.ReadFirst(firstCrcDict, manualFileList); Debug.Log("manualFileList.Count =" + manualFileList.Count); #endregion SplitPackage.DeleteSplitPackageResFolder(); #region 生成校验列表 SplitPackage.UpdateOutPath = null; SplitPackage.UpdateOutDevelopPath = null; AssetDatabase.Refresh(); StringBuilder[] sbs = SplitPackage.CreateCrcListContent(allBundles, firstCrcDict, currCrcDict, diffCrcDict, manualFileList); uint streaming_crc = SplitPackage.CreateStreamingCrcList(sbs[0]); //本地列表 // System.Threading.Thread.Sleep(1000); uint diff_crc = SplitPackage.CreateStreamingCrcList(sbs[1], firstExists, true); //增量列表 // System.Threading.Thread.Sleep(1000); CUtils.DebugCastTime("Time CreateStreamingCrcList End"); #endregion #region 生成版本号 //生成版本号码 SplitPackage.CreateVersionAssetBundle(diff_crc); SplitPackage.CreateDevelopVersionAssetBundle(diff_crc); CUtils.DebugCastTime("Time CreateVersionAssetBundle End"); #endregion #region copy更新文件导出 SplitPackage.CopyVersionToSplitFolder(diff_crc); SplitPackage.CopyChangeFileToSplitFolder(firstExists, firstCrcDict, currCrcDict, diffCrcDict, manualFileList); CUtils.DebugCastTime("Time CopyChangeFileToSplitFolder End"); Debug.LogFormat("streaming_crc={0},diff_crc{1}", streaming_crc, diff_crc); Debug.LogFormat(" firstCrcDict={0},currCrcDict={1},diffCrcDict={2},manualFileList={3}", firstCrcDict.Count, currCrcDict.Count, diffCrcDict.Count, manualFileList.Count); if (CheckZipPlatform()) { SplitPackage.ZipAssetbundles(); } else { ZipConfigs.Delete(); } #endregion #region 除手动加载文件 #if (UNITY_ANDROID || UNITY_IOS) //&& !UNITY_EDITOR bool spExtFolder = HugulaSetting.instance.spliteExtensionFolder; if (spExtFolder) { SplitPackage.DeleteStreamingFiles(manualFileList); } #endif #endregion EditorUtility.ClearProgressBar(); }