private void Update_Update() { if (updateState == UpdateState.Updating) { frameCount++; if (frameCount % frameGap == 0) { long downloadedFileTotalSize = 0; foreach (DownloadItem di in m_DownloadItems) { if (di != null) { downloadedFileTotalSize += di.GetCurrentLength(); } } SizeText.text = FileUtils.ByteToReadableFileSize(downloadedFileTotalSize) + "/" + m_FileListTotalSize_Readable; if (m_FileListTotalSize == 0) { ProgressSlider.value = 0; ProgressText.text = "0%"; } else { float process = (float)downloadedFileTotalSize / m_FileListTotalSize; ProgressSlider.value = process; ProgressText.text = string.Format("{0:F}", process * 100) + "%"; } } } }
public DownloadFileInfo(string filename, string filePath, string md5sum, long fileSize) { FileName = filename; FilePath = filePath; MD5 = md5sum; FileSize = fileSize; FileReadableSize = FileUtils.ByteToReadableFileSize(fileSize); }
void FinishedDownload() { GameNameText.text = "Mech Storm (Ready)"; updateState = UpdateState.Finished; SizeText.text = FileUtils.ByteToReadableFileSize(m_FileListTotalSize) + "/" + m_FileListTotalSize_Readable; ProgressSlider.value = 1; StageText.text = "OK."; ProgressText.text = "100%"; UpdateCompleted = true; FinishedExtract(); }
private void Initialized() { GameNameText.text = "Mech Storm"; ClientVersionText.text = "Client Version: " + ClientVersion; ServerVersionText.text = "Server Version: Unknown"; StageText.text = "Preparing..."; SizeText.text = FileUtils.ByteToReadableFileSize(0); ProgressSlider.value = 0; ProgressText.text = "0%"; m_FileListInfos.Clear(); m_DownloadItems.Clear(); m_FileListTotalSize = 0; m_FileListTotalSize_Readable = "0B"; m_DownloadFileCount = 0; StageText.color = TextDefaultColor; }
IEnumerator GetFileSizeList() { WWW www_serverVersion = new WWW(m_ResourcesURL + "ServerVersion"); yield return(www_serverVersion); if (www_serverVersion.error != null) { Debug.Log("Loading error:" + www_serverVersion.url + "\n" + www_serverVersion.error); } else { string content = www_serverVersion.text; string version = content.Split('\n')[0]; ServerVersion = version; ServerVersionText.text = "Server Version: " + version; } if (ServerVersion == ClientVersion) { StageText.text = "Checking resources..."; updateState = UpdateState.Checking; } WWW www_ignore = new WWW(m_ResourcesURL + ".downloadIgnore"); yield return(www_ignore); if (www_ignore.error != null) { Debug.Log("Loading error:" + www_ignore.url + "\n" + www_ignore.error); } else { string content = www_ignore.text; string[] lines = content.Split('\n'); foreach (string line in lines) { if (!string.IsNullOrEmpty(line)) { string fullFileName = line.TrimEnd('\n'); DownloadIgnoreFileList.Add(fullFileName); } } } WWW www = new WWW(m_ResourcesURL + "FileSizeList.txt"); yield return(www); if (www.error != null) { Debug.Log("Loading error:" + www.url + "\n" + www.error); } else { string content = www.text; string[] lines = content.Split('\n'); foreach (string line in lines) { if (!string.IsNullOrEmpty(line)) { if (m_FileSizeListRegex.IsMatch(line)) { Match match = m_FileSizeListRegex.Match(line); long fileSize = long.Parse(match.Groups["size"].Value); string filePath = match.Groups["filepath"].Value; if (filePath.StartsWith("StreamingAssets/AssetBundle/")) { if (!filePath.StartsWith("StreamingAssets/AssetBundle/" + GetPlatformAbbr())) { continue; } } string fileName = match.Groups["filename"].Value; string fileFullPath = filePath + fileName; if (DownloadIgnoreFileList.Contains(fileFullPath)) { continue; } string md5sum = match.Groups["md5"].Value.ToUpper(); if (DownloadFileMD5Sum.ContainsKey(fileFullPath)) { string md5sum_local = DownloadFileMD5Sum[fileFullPath]; if (md5sum_local.Equals(md5sum)) { continue; } } m_FileListTotalSize += fileSize; DownloadFileInfo fi = new DownloadFileInfo(fileName, filePath, md5sum, fileSize); m_FileListInfos.Add(fi); } } } m_FileListTotalSize_Readable = FileUtils.ByteToReadableFileSize(m_FileListTotalSize); m_DownloadFileCount = m_FileListInfos.Count; } yield return(null); }