获取文件信息
UnityWebRequest header = UnityWebRequest.Head(o.previewUrl);
yield return header.SendWebRequest();
if (!header.isHttpError && !header.isNetworkError)
{
flLength = long.Parse(header.GetResponseHeader("Content-Length"));
}
下载请求
UnityWebRequest request = UnityWebRequest.Get(o.previewUrl);
yield return request.SendWebRequest();
if (!request.isHttpError && !request.isNetworkError)
{}
显示进度条
update中更新进度条
//进度条
if (panelProgress != null&& requestDwn!=null&&flCount > 0&& flLength>0)
{
float progress = (float)requestDwn.downloadedBytes / flLength * (1f / flCount);
//Debug.Log(progress + "---" + lastProgress);
if(requestDwn.downloadedBytes == flLength)
progress = Mathf.Ceil(lastProgress / (1f / flCount)) * (1f / flCount);
else
progress += Mathf.Floor(lastProgress / (1f / flCount)) * (1f / flCount);
if (progress > lastProgress)
{
panelProgress.GetComponentInChildren<Slider>().value = progress;
int leftTime = (int)(Time.deltaTime * ((1f - progress) / (progress - lastProgress)));
string downLoadLeft = "已下载" + (int)(progress * 100) + "%" + "还剩" + leftTime + "s";
panelProgress.GetComponentsInChildren<Text>().FirstOrDefault().text = downLoadLeft;
//Debug.Log(progress + "---" + lastProgress + " " + downLoadLeft);
}
lastProgress = progress;
}