void OnUpdate() { if (fileInfo == null) { return; } if (_preFileInfo != fileInfo) { _preFileInfo = fileInfo; iconImage.sprite = FileIcon.GetIcon(Path.GetExtension(fileInfo.localPath)); urlText.text = Path.GetFileName(fileInfo.url); pathText.text = fileInfo.localPath; } DownloadFile downloadFile = fileInfo.downloadFile; if (downloadFile == null) { if (fileInfo.state == FileInfo.StateType.Complete) { totalBar.localScale = new Vector3(1, 1, 1); rateText.text = Mathf.Ceil(1 * 100) + "%"; } else { totalBar.localScale = new Vector3(0, 1, 1); rateText.text = ""; } for (int i = 0; i < blockItemsColor.Count; i++) { blockItemsColor[i].gameObject.SetActive(false); blockItemsBg[i].gameObject.SetActive(false); } sizeText.text = fileInfo.size > 0 ? ToSizeStr(fileInfo.size) : ""; stateText.text = ""; timeText.text = fileInfo.loadTime > 0 ? ToTimeStr(fileInfo.loadTime) : ""; return; } long speed = 0; if (downloadFile.state == DownloadFile.StateType.Loading) { speed = downloadFile.loadedSize - preLoadedSize; preLoadedSize = downloadFile.loadedSize; } totalBar.localScale = new Vector3(downloadFile.progress, 1, 1); rateText.text = Mathf.Ceil(downloadFile.progress * 100) + "%"; sizeText.text = downloadFile.size <= 0 ? "" : string.Format("{0} / {1}", ToSizeStr(downloadFile.loadedSize), ToSizeStr(downloadFile.size)); if (fileInfo.state == FileInfo.StateType.Complete) { stateText.text = "已完成"; } else if (fileInfo.state == FileInfo.StateType.Complete) { stateText.text = "已暂停"; } else if (downloadFile.state == DownloadFile.StateType.Loading) { stateText.text = ToSizeStr(speed) + "/S"; } else if (fileInfo.state == FileInfo.StateType.Queue) { stateText.text = "队列中"; } else { stateText.text = ""; } if (downloadFile.state == DownloadFile.StateType.Loading) { if (speed > 0) { leftTime = (downloadFile.size - downloadFile.loadedSize) / speed; } timeText.text = string.Format("{0} / {1}", ToTimeStr(fileInfo.loadTime), speed > 0 ? ToTimeStr(leftTime) : "--:--:--"); } else if (fileInfo.loadTime > 0) { timeText.text = string.Format("{0}", ToTimeStr(fileInfo.loadTime)); } else { timeText.text = ""; } RectTransform blockItemBg; RectTransform blockItemColor; for (int i = 0; i < downloadFile.blockList.Count; i++) { if (i < blockItemsColor.Count) { blockItemColor = blockItemsColor[i]; blockItemBg = blockItemsBg[i]; } else { blockItemBg = (RectTransform)GameObject.Instantiate(blockPrefabBg.gameObject).transform; blockItemBg.SetParent(blockContainer, false); blockItemsBg.Add(blockItemBg); blockItemBg.SetAsFirstSibling(); blockItemColor = (RectTransform)GameObject.Instantiate(blockPrefabColor.gameObject).transform; blockItemColor.SetParent(blockContainer, false); blockItemsColor.Add(blockItemColor); blockItemColor.SetAsLastSibling(); } float b = downloadFile.size <= 0 ? 0 : downloadFile.blockList[i].begin * 1f / downloadFile.size; float w = downloadFile.size <= 0 ? 0 : (downloadFile.blockList[i].end - downloadFile.blockList[i].begin) * 1f / downloadFile.size; b *= blockTotalWidth; w *= blockTotalWidth; blockItemBg.anchoredPosition = blockItemColor.anchoredPosition = new Vector2(b, blockItemColor.anchoredPosition.y); blockItemBg.sizeDelta = blockItemColor.sizeDelta = new Vector2(w, blockItemColor.sizeDelta.y); blockItemColor.localScale = new Vector3(downloadFile.blockList[i].progress, 1, 1); if (!blockItemColor.gameObject.activeSelf) { blockItemColor.gameObject.SetActive(true); } if (!blockItemBg.gameObject.activeSelf) { blockItemBg.gameObject.SetActive(true); } } for (int i = downloadFile.blockList.Count; i < blockItemsColor.Count; i++) { blockItemsColor[i].gameObject.SetActive(false); blockItemsBg[i].gameObject.SetActive(false); } }
void Awake() { _install = this; dict.Add(".psd", 11); dict.Add(".jpg", 12); dict.Add(".gif", 13); dict.Add(".png", 14); dict.Add(".bmp", 15); dict.Add(".tga", 16); dict.Add(".ico", 17); dict.Add(".hdr", 18); dict.Add(".raw", 19); dict.Add(".pdf", 20); dict.Add(".txt", 21); dict.Add(".doc", 22); dict.Add(".rtf", 23); dict.Add(".odt", 24); dict.Add(".sub", 25); dict.Add(".unx", 26); dict.Add(".ort", 27); dict.Add(".chm", 28); dict.Add(".wpd", 29); dict.Add(".mp3", 30); dict.Add(".wav", 31); dict.Add(".aac", 32); dict.Add(".flac", 33); dict.Add(".cda", 34); dict.Add(".midi", 35); dict.Add(".rmf", 36); dict.Add(".ogg", 37); dict.Add(".voc", 38); dict.Add(".wma", 39); dict.Add(".qt", 40); dict.Add(".flv", 41); dict.Add(".mp4", 42); dict.Add(".avi", 43); dict.Add(".3gp", 44); dict.Add(".mpg", 45); dict.Add(".mkv", 46); dict.Add(".mov", 47); dict.Add(".asf", 48); dict.Add(".vob", 49); dict.Add(".fb2", 50); dict.Add(".djvu", 51); dict.Add(".mobi", 52); dict.Add(".epub", 53); dict.Add(".iw4", 54); dict.Add(".prc", 55); dict.Add(".chm2", 56); dict.Add(".tcr", 57); dict.Add(".ebk", 58); dict.Add(".azw", 59); dict.Add(".zip", 60); dict.Add(".rar", 61); dict.Add(".iso", 62); dict.Add(".jar", 63); dict.Add(".tar", 64); dict.Add(".ace", 65); dict.Add(".lzh", 66); dict.Add(".arj", 67); dict.Add(".cab", 68); dict.Add(".zoo", 69); dict.Add(".js", 70); dict.Add(".htm", 71); dict.Add(".css", 72); dict.Add(".xml", 73); dict.Add(".mht", 74); dict.Add(".psp", 75); dict.Add(".eml", 76); dict.Add(".php", 77); dict.Add(".java", 78); dict.Add(".py", 79); dict.Add(".ini", 80); dict.Add(".sys", 81); dict.Add(".key", 82); dict.Add(".ppt", 83); dict.Add(".nfo", 84); dict.Add(".xls", 85); dict.Add(".csv", 86); dict.Add(".cab2", 87); dict.Add(".mdb", 88); dict.Add(".com", 89); dict.Add(".swf", 90); dict.Add(".exe", 91); dict.Add(".dat", 92); dict.Add(".hlp", 93); dict.Add(".dll", 94); dict.Add(".faq", 95); dict.Add(".rss", 96); dict.Add(".fon", 97); dict.Add(".ttf", 98); dict.Add(".otf", 99); }