From 24fcde9fe168f6690a8f9ce048943df01dae9011 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期三, 19 十二月 2018 21:24:26 +0800
Subject: [PATCH] 3335  修改资源下载显示逻辑,显示的已下载数据包大小强制小等于预计要下载的数据包大小,如果已下载的数据包大小大于预计,则下载速度显示随机显示5到10KB/S。适用于apk下载、游戏启动阶段资源下载、游戏内部资源下载。这个策略的目的是为了在cdn异常,或者网络波动较大等会出现重复下载或者下载链接的内容与预期不符合的情况。

---
 System/ClientVersion/VersionUpdateWin.cs |   18 ++++++++++++------
 1 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/System/ClientVersion/VersionUpdateWin.cs b/System/ClientVersion/VersionUpdateWin.cs
index 18d8640..e305a0e 100644
--- a/System/ClientVersion/VersionUpdateWin.cs
+++ b/System/ClientVersion/VersionUpdateWin.cs
@@ -99,17 +99,23 @@
 
                     m_ProgressSlider.value = VersionUtility.Instance.progress;
 
-                    var downLoadedSize = ((float)RemoteFile.TotalDownloadedSize / DownLoadAndDiscompressTask.BYTE_PER_MILLIONBYTE).ToString("f1");
-                    var totalSize = ((float)VersionUtility.Instance.GetApkSize() * 1024 / DownLoadAndDiscompressTask.BYTE_PER_MILLIONBYTE).ToString("f1");
-                    m_Progress.text = Language.GetFromLocal(13, StringUtility.Contact(downLoadedSize, "M", "/", totalSize, "M"));
+                    var totalSizeString = ((float)VersionUtility.Instance.GetApkSize() * 1024 / DownLoadAndDiscompressTask.BYTE_PER_MILLIONBYTE).ToString("f1");
+                    var downLoadedSize = Mathf.Clamp(RemoteFile.TotalDownloadedSize, 0, VersionUtility.Instance.GetApkSize());
+                    var downLoadedSizeString = ((float)downLoadedSize / DownLoadAndDiscompressTask.BYTE_PER_MILLIONBYTE).ToString("f1");
 
-
-                    m_Progress.text = StringUtility.Contact((VersionUtility.Instance.progress * 100).ToString("f0"), "%");
+                    m_Progress.text = Language.GetFromLocal(13, StringUtility.Contact(downLoadedSizeString, "M", "/", totalSizeString, "M"));
                 }
 
                 if (Time.frameCount % 2 == 0)
                 {
-                    m_DownLoadSpeed.text = RemoteFile.DownloadSpeed;
+                    if (RemoteFile.TotalDownloadedSize >= VersionUtility.Instance.GetApkSize())
+                    {
+                        m_DownLoadSpeed.text = StringUtility.Contact(UnityEngine.Random.Range(5, 10), "KB/S");
+                    }
+                    else
+                    {
+                        m_DownLoadSpeed.text = RemoteFile.DownloadSpeed;
+                    }
                 }
             }
         }

--
Gitblit v1.8.0