| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 | using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.Networking;public class UnityWebHttpDownload : HttpDownloadBasic{    private UnityWebRequest _unityWebRequest;    private UnityWebRequestAsyncOperation _unityWebRequestAsyncOperation;    protected float currTime;    protected override void ProStartDown()    {        maxCount--;        isFinish = false;        currTime = 0;        if (_unityWebRequest != null)        {            _unityWebRequest.Dispose();            _unityWebRequest = null;        }        _unityWebRequest = UnityWebRequest.Get(downloadFileData.remoteUrl);        if (!string.IsNullOrEmpty(downloadFileData.localPath))        {            _unityWebRequest.downloadHandler = new DownloadHandlerFile(downloadFileData.localPath);        }        _unityWebRequest.timeout = timeOut;        // _unityWebRequest.        _unityWebRequestAsyncOperation = _unityWebRequest.SendWebRequest();        DownloadHander.UnityWebRequestAsyncOperation = _unityWebRequestAsyncOperation;    }    protected override bool ProFinish()    {        return _unityWebRequestAsyncOperation.isDone;    }    public override bool AllFinish()    {        return isFinish;    }    public override UnityWebRequest.Result Result()    {        return _unityWebRequest.result;    }    public override void Update()    {        currTime += Time.deltaTime;        if (!isFinish && ProFinish())        {            isFinish = true;            if (_unityWebRequest.result != UnityWebRequest.Result.Success)            {                Debug.Log("下载失败" + _unityWebRequest.error + "   " + downloadFileData.remoteUrl);                if (maxCount > 0)                {                    ProStartDown();                }                else                {                    DownloadHander.OnFinishCallBack?.Invoke(DownloadHander);                }            }            else            {                DownloadHander.OnFinishCallBack?.Invoke(DownloadHander);            }        }        else        {            if (currTime > timeOut)            {                Debug.Log("超时"+currTime+"__"+timeOut);                ProStartDown();            }        }    }}
 |