コード例 #1
0
    //开始下载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);
    }
コード例 #2
0
    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);
    }
コード例 #3
0
    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);
    }