//开始下载url2 public void StartDownload2() { string[] URLStr = url2.Split('/'); string FileName = URLStr[URLStr.Length - 1]; _DownloadHandler handler = DownlaodFile._Instance.StartDownload(url2, Application.dataPath + "/../" + FileName); if (handler == null) { return; } handler.RegisteProgressBack(Progress2); handler.RegisteReceiveTotalLengthBack(Total); handler.RegisteCompleteBack(Complete); }
public _DownloadHandler StartDownload(string url, string savePath) { if (listRequest.ContainsKey(url)) { Debug.Log("下载列表已经存在路径 =>" + url); return(null); } _DownloadHandler loadHandler = new _DownloadHandler(savePath); UnityWebRequest request = UnityWebRequest.Get(url); request.chunkedTransfer = true; request.disposeDownloadHandlerOnDispose = true; request.SetRequestHeader("Range", "bytes=" + loadHandler.DownedLength + "-"); request.downloadHandler = loadHandler; request.Send(); listRequest.Add(url, request); return(loadHandler); }
public Dictionary <string, UnityWebRequest> listRequest = new Dictionary <string, UnityWebRequest>(); //下载请求的列表 /// <summary> /// 开始下载资源 /// </summary> /// <param name="url">资源的url</param> /// <param name="savePath">下载后保存文件的绝对路径,包含文件名称和扩展名</param> public _DownloadHandler StartDownload(string url, string savePath) { if (listRequest.ContainsKey(url)) { Debug.Log("下载列表已经存在路径=>" + url); //return listRequest[url].downloadHandler as _DownloadHandler; return(null); //如果已经存在,则返回null } _DownloadHandler loadHandler = new _DownloadHandler(savePath); UnityWebRequest request = UnityWebRequest.Get(url); request.chunkedTransfer = true; request.disposeDownloadHandlerOnDispose = true; request.SetRequestHeader("Range", "bytes=" + loadHandler.DownedLength + "-"); //断点续传设置读取文件数据流开始索引,成功会返回206 request.downloadHandler = loadHandler; //request.useHttpContinue = true; //默认就是true request.Send(); //协程操作,可以在协程中调用等待 listRequest.Add(url, request); //保存下载的请求 return(loadHandler); }