IEnumerator CheckHotUpdateAsync() { WWW www = new WWW(FormatUrl(serverUrl, GetRouteRoot() + "files.txt")); yield return(www); if (!string.IsNullOrEmpty(www.error)) { hotUI.HOT_CheckHotUpdateError(www.error, this); www.Dispose(); www = null; } else { //对比文件是否需要更新 var serverFileInfos = VersionFile.ReadFileInfo(www.text); // 清空更新文件列表 updateVersionFileList.Clear(); updateVersionFileCount = 0; currentUpdateVersionFileIndex = 0; for (int i = 0; i < serverFileInfos.Length; i++) { var fileInfo = serverFileInfos[i]; // 本地文件路径 var localFilePath = fileInfo.DataLocalPath; // 文件夹是否存在 var localFileDir = Path.GetDirectoryName(localFilePath); if (!Directory.Exists(localFileDir)) { Directory.CreateDirectory(localFileDir); } // 文件服务器地址 var fileUrl = FormatUrl(serverUrl, GetRouteRoot() + fileInfo.WebPath); if (!File.Exists(localFilePath)) { // 文件不存在,需要更新 updateVersionFileList.Add(fileInfo); // 删除本地文件,等待更新 updateSize += fileInfo.Size; } else { string serverFileHash = fileInfo.Hash.Trim(); string localMd5 = Util.md5file(localFilePath); if (!serverFileHash.Equals(localMd5)) { updateVersionFileList.Add(fileInfo); updateSize += fileInfo.Size; // 删除本地文件, 等待更新 File.Delete(localFilePath); } } } } updateVersionFileCount = updateVersionFileList.Count; currentUpdateVersionFileIndex = 0; if (updateVersionFileCount > 0) { // 需要更新 hotUI.HOT_CheckUpdateSure(() => { DownloadHot(); }, () => { Application.Quit(); }, this); } }