예제 #1
0
        public List <AssetbundleJsonData> CompareMD(AssetbundleJsonMap cdn, AssetbundleJsonMap map2)
        {
            List <AssetbundleJsonData> updateFiles = new List <AssetbundleJsonData>();

            //long length = 0;
            for (int i = 0; i < cdn.arrayRes.Length; i++)
            {
                AssetbundleJsonData data  = cdn.arrayRes[i];
                AssetbundleJsonData local = map2.GetJsonData(data.resName);
                if (local == null)
                {
                    //length += data.length;
                    updateFiles.Add(data);
                }
                else if (data.hashCode == local.hashCode)
                {
                }
                else
                {
                    updateFiles.Add(data);
                    //length += data.length;
                }
            }
            return(updateFiles);
        }
예제 #2
0
        private void OnDonwloadResFinish(WWW www, AssetbundleJsonData json)
        {
            bool success = string.IsNullOrEmpty(www.error);

            byte[] data = www.bytes;

            if (success)
            {
                if (json.resName.Contains("version.dat"))
                {
                    tip = " 忽略version.dat ";
                    Debug.LogError(tip);
                }
                else
                {
                    SafeWriteFileInPersistent(json.resName, data);
                }

                download++;
                if (download == updateFiles.Count)
                {
                    StartCoroutine(DoLastJob());
                }
            }
            else
            {
                UIMessageBoxHelper.onShow0("error: 801");
            }


            //else
            //{
            //    downFileCount--;
            //}
        }
예제 #3
0
 int Sort(AssetbundleJsonData l, AssetbundleJsonData r)
 {
     if (l.length > r.length)
     {
         return(-1);
     }
     else if (l.length < r.length)
     {
         return(1);
     }
     else
     {
         return(0);
     }
 }
예제 #4
0
        public void AddJob(string resURL, MutilDownloadCallback callback, AssetbundleJsonData json)
        {
            bool find = false;

            foreach (var k in jobs)
            {
                if (k.url == resURL)
                {
                    find = true;
                }
            }
            if (!find)
            {
                jobs.Add(new Job(resURL, callback, json));
            }
        }
예제 #5
0
        public static List <AssetbundleJsonData> GetMD5ForFolder(string folder, string relative)
        {
            List <AssetbundleJsonData> data = new List <AssetbundleJsonData>();

            string[] files = Directory.GetFiles(folder, "*", SearchOption.AllDirectories);

            EditorUtility.DisplayProgressBar("生成MD5", "...", 0);
            int i = 0;

            foreach (string file in files)
            {
                bool find = false;
                foreach (var k in keyNotInclude)
                {
                    if (Path.GetFileName(file) == k)
                    {
                        find = true;
                    }
                }
                if (find)
                {
                    continue;
                }

                string md5 = ResCommon.GetFileMD5(file);
                //Debug.Log("MD5 :" + file + ": " + resFolder);
                string ffile = file.Replace("\\", "/");

                string fileName = ffile.Replace(relative + "/", "");
                //Debug.Log("MD5 :" + fileName);

                FileInfo fileInfo = new FileInfo(file);

                AssetbundleJsonData jData = new AssetbundleJsonData(fileName, md5, fileInfo.Length);

                i++;
                EditorUtility.DisplayProgressBar("生成MD5", file, (float)i / (float)files.Length);
                data.Add(jData);
            }

            EditorUtility.ClearProgressBar();

            return(data);
        }
예제 #6
0
        public void SetJsonData(string resName, AssetbundleJsonData resData)
        {
            bool exist = false;
            List <AssetbundleJsonData> listRes = new List <AssetbundleJsonData>(arrayRes);

            for (int i = 0; i < listRes.Count; i++)
            {
                AssetbundleJsonData data = listRes[i];
                if (data.resName == resName)
                {
                    listRes[i] = resData;
                    exist      = true;
                }
            }
            if (!exist)
            {
                listRes.Add(resData);
            }

            arrayRes = listRes.ToArray();
        }
예제 #7
0
 public Job(string url, MutilDownloadCallback callback, AssetbundleJsonData json)
 {
     this.url      = url;
     this.callback = callback;
     this.data     = json;
 }