ReadFirst() public static method

1 读取首包,找出忽略文件
public static ReadFirst ( uint[]>.Dictionary firstCrcDict, HashSet whiteFileList, HashSet blackFileList ) : bool
firstCrcDict uint[]>.Dictionary
whiteFileList HashSet
blackFileList HashSet
return bool
コード例 #1
0
ファイル: BuildScript.cs プロジェクト: minedward/hugula
        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);
            #endregion

            SplitPackage.DeleteSplitPackageResFolder();

            #region 生成校验列表
            SplitPackage.UpdateOutPath = 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, SplitPackage.UpdateOutPath); //增量列表
            // System.Threading.Thread.Sleep(1000);
            CUtils.DebugCastTime("Time CreateStreamingCrcList End");
            #endregion

            #region 生成版本号
            //生成版本号码
            SplitPackage.CreateVersionAssetBundle(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);

            #endregion

            #region  除手动加载文件
#if (UNITY_ANDROID || UNITY_IOS) //&& !UNITY_EDITOR
            SplitPackage.DeleteStreamingFiles(manualFileList);
#endif
            #endregion

            EditorUtility.ClearProgressBar();
        }
コード例 #2
0
ファイル: BuildScript.cs プロジェクト: jie007/hugula
        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
            // return ;
            SplitPackage.DeleteSplitPackageResFolder();

            #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], firstExists, 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
            if (whiteFileList.Count > 0)
            {
                List <string> del = new List <string>();
                foreach (var kv in currCrcDict)
                {
                    if (!whiteFileList.Contains(kv.Key))
                    {
                        del.Add(kv.Key);
                    }
                }
                SplitPackage.DeleteStreamingFiles(del);//保留白名单
            }
            else
            {
                SplitPackage.DeleteStreamingFiles(blackFileList);
            }
#endif
            #endregion

            EditorUtility.ClearProgressBar();
        }