public static void GenerateAssetBundlesUpdateFile(string[] allBundles) { string title = "Generate Update File "; string info = "Compute crc32"; EditorUtility.DisplayProgressBar(title, info, 0.1f); Dictionary <string, uint> firstCrcDict = new Dictionary <string, uint> (); HashSet <string> whiteFileList = new HashSet <string> (); HashSet <string> blackFileList = new HashSet <string> (); Dictionary <string, uint> currCrcDict = new Dictionary <string, uint>(); Dictionary <string, uint> diffCrcDict = new Dictionary <string, uint> (); #region 读取首包 bool firstExists = SplitPackage.ReadFirst(firstCrcDict, whiteFileList, blackFileList); #endregion #region 生成校验列表 SplitPackage.UpdateOutPath = null; StringBuilder[] sbs = SplitPackage.CreateCrcListContent(allBundles, firstCrcDict, currCrcDict, diffCrcDict, whiteFileList, blackFileList); uint streaming_crc = SplitPackage.CreateStreamingCrcList(sbs[0]); System.Threading.Thread.Sleep(1000); uint diff_crc = SplitPackage.CreateStreamingCrcList(sbs[1], SplitPackage.UpdateOutPath); System.Threading.Thread.Sleep(1000); #endregion #region 生成版本号 //生成版本号码 SplitPackage.CreateVersionAssetBundle(diff_crc); #endregion #region copy更新文件导出 SplitPackage.CopyVersionToSplitFolder(diff_crc); SplitPackage.CopyChangeFileToSplitFolder(firstExists, firstCrcDict, currCrcDict, diffCrcDict, whiteFileList, blackFileList); Debug.LogFormat("streaming_crc={0},diff_crc{1}", streaming_crc, diff_crc); Debug.LogFormat(" firstCrcDict={0},currCrcDict={1},diffCrcDict={2},whiteFileList={3},blackFileList={4}", firstCrcDict.Count, currCrcDict.Count, diffCrcDict.Count, whiteFileList.Count, blackFileList.Count); #endregion #region 除扩展文件 #if (UNITY_ANDROID || UNITY_IOS) //&& !UNITY_EDITOR SplitPackage.DeleteStreamingFiles(blackFileList); #endif #endregion EditorUtility.ClearProgressBar(); }
public void Run(HotResGenSharedData sharedata) { SplitPackage.CopyChangeFileToSplitFolder(sharedata.firstExists, sharedata.firstCrcDict, sharedata.streamingManifest, sharedata.diffstreamingManifest, sharedata.manualFileList); }