/// <summary> /// 根据输入的数据大小和类型 返回正确的网络流量表示法 /// </summary> /// <param name="byteSize">数据大小</param> /// <param name="dataEnum">数据单位</param> /// <param name="accuracy">显示的数值精确到小数点后面几位</param> public void GetNetDataDesciption(ref float byteSize, ref NetDataEnum dataEnum, uint accuracy = 2) { if (byteSize < 1024) { byteSize = (int)(Mathf.Pow(10, accuracy) * byteSize) / Mathf.Pow(10, accuracy); return; } byteSize = byteSize / 1024; dataEnum = (NetDataEnum)(dataEnum + 1); GetNetDataDesciption(ref byteSize, ref dataEnum, accuracy); }
/// <summary> /// 根据输入的数据大小和类型 返回正确的网络流量表示法 /// </summary> /// <param name="byteSize">数据大小</param> /// <param name="dataEnum">数据单位</param> /// <param name="isUpdaRounding">true是否是向上取整,false 时候直接除以1024 取整 </param> public void GetNetDataDesciption(ref int byteSize, ref NetDataEnum dataEnum, bool isUpdaRounding) { if (byteSize < 1024) { return; } if (isUpdaRounding) { byteSize = (byteSize + 1023) / 1024; } else { byteSize = byteSize / 1024; } dataEnum = (NetDataEnum)(dataEnum + 1); GetNetDataDesciption(ref byteSize, ref dataEnum, isUpdaRounding); }
/// <summary> /// 更新下载进度视图 /// </summary> private void UpdateDownloadProcessView() { m_txtUpdateProcessText.text = (int)(m_TotalDownloadedSize * 100f / TotalSize) + "%"; //下载百分比 NetDataEnum dataEnum = NetDataEnum.B; NetWorkUtility.Instance.GetNetDataDesciption(ref m_DownLoadSizeRecordThisSecond, ref dataEnum, true); m_txtUpdateSpeedText.text = string.Format("{0} {1}/秒", m_DownLoadSizeRecordThisSecond, dataEnum.ToString()); //下载速度 dataEnum = NetDataEnum.B; int totalDownLoadSize = m_TotalDownloadedSize; NetWorkUtility.Instance.GetNetDataDesciption(ref totalDownLoadSize, ref dataEnum, true); m_txtUpdateSizeText.text = string.Format("{0} {1}/{2}{3}", totalDownLoadSize, dataEnum, m_TotalSize, m_TotalSizeEnum); //下载的大小 Debug.LogEditorInfor("UpdateDownLoadProcess " + dataEnum + " Size=" + m_DownLoadSizeRecordThisSecond); m_DownLoadSizeRecordThisSecond = 0; }
private void ShowDownloadProcess(bool isShowDownloadSpeed, bool isShowDownloadCount) { float process = m_TotalDownloadedSize / (TotalSize * 1f); m_UpdateProcessText.text = (int)(process * 100) + "%"; if (isShowDownloadSpeed) { float downloadSize = m_DownLoadSizeRecordThisSecond / m_UpdateDetail; NetDataEnum dataEnum = NetDataEnum.B; NetWorkTool.GetInstance().GetNetDataDesciption(ref downloadSize, ref dataEnum, 2); if (m_UpdateSpeedText.gameObject.activeSelf == false) { m_UpdateSpeedText.gameObject.SetActive(true); } m_UpdateSpeedText.text = string.Format("当前网速{0}{1}/S", downloadSize, dataEnum.ToString()); // m_UpdateSpeedText.text = "当前网速" + m_DownLoadSizeRecordThisSecond/ m_UpdateDetail + "B/S"; } else { m_UpdateSpeedText.gameObject.SetActive(false); } if (isShowDownloadCount) { float TotalDownloadedSize = m_TotalDownloadedSize; NetDataEnum dataEnum2 = NetDataEnum.B; NetWorkTool.GetInstance().GetNetDataDesciption(ref TotalDownloadedSize, ref dataEnum2, 2); if (m_UpdateSizeText.gameObject.activeSelf == false) { m_UpdateSizeText.gameObject.SetActive(true); } m_UpdateSizeText.text = string.Format("更新进度{0}{1}/{2}{3}", TotalDownloadedSize, dataEnum2.ToString(), m_TotalSize, m_TotalSizeEnum.ToString()); // m_UpdateSizeText.text = string.Format("更新进度{0}B/{1}B", m_TotalDownloadedSize, TotalSize); } else { m_UpdateSizeText.gameObject.SetActive(false); } m_ProcessImg.fillAmount = process; }