Exemplo n.º 1
0
    private void UpdateOutAppAssetPath(HotUpdateAssetItem info)
    {
        int i = 0;

        for (i = 0; i < localAssetOutAppList.assetList.Count; i++)
        {
            var assetInfo = localAssetOutAppList.assetList[i];
            if (assetInfo.assetPath == info.assetPath)
            {
                assetInfo.md5 = info.md5;
                break;
            }
        }
        if (i >= localAssetOutAppList.assetList.Count)
        {
            localAssetOutAppList.assetList.Add(info);
        }
    }
    private static void CreateAssetList(string assetBundleFullPath)
    {
        EditorUtility.DisplayProgressBar("CreateAssetsList", "progress: ", 0);
        //读取所有文件,并创建md5文件
        HotUpdateAssetsList hotUpdateAssetsList = new HotUpdateAssetsList();
        DirectoryInfo       directoryInfo       = new DirectoryInfo(assetBundleFullPath);

        FileInfo[] allAsset = directoryInfo.GetFiles();
        for (int i = 0; i < allAsset.Length; i++)
        {
            EditorUtility.DisplayProgressBar("CreateAssetsList", "progress: ", 1f * i / allAsset.Length);
            FileInfo fileInfo          = allAsset[i];
            string   fullName          = fileInfo.FullName.Replace("\\", "/");
            string   rootDirectoryPath = assetBundleFullPath.Replace("\\", "/");
            string   assetName         = fullName.Substring(rootDirectoryPath.Length + 1);
            if (assetName == assetListName)
            {
                continue;
            }
            if (assetName.Split('.').Length > 0)
            {
                assetName = assetName.Split('.')[0];
            }
            //StreamReader fileStream = fileInfo.OpenText();
            //string fileStr = fileStream.ReadToEnd();
            //fileStream.Close();
            string             md5 = MD5Builder.BuildMD5(fileInfo.FullName);
            HotUpdateAssetItem hotUpdateAssetItem = new HotUpdateAssetItem(assetName, md5);
            hotUpdateAssetsList.assetList.Add(hotUpdateAssetItem);
        }
        EditorUtility.ClearProgressBar();
        EditorUtility.DisplayProgressBar("Write \"CreateAssetsList to file\" ", "progress: ", 0);
        string assetListJsonStr = JsonUtility.ToJson(hotUpdateAssetsList);
        string assetListPath    = Path.Combine(assetBundleFullPath, assetListName);

        File.WriteAllText(assetListPath, assetListJsonStr);
        EditorUtility.ClearProgressBar();
    }