| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 | using System.Collections.Generic;using UnityEngine;namespace ThirdParty.DownloadSystem{    public class DownLoadHanderGroup    {        public ulong size;        public long finishCount;        public System.Action OnCallBack;        public List<DownloadHander> DownloadHanders = new List<DownloadHander>();        private bool _isUpdate;        public float speed;        private float _lasetTime;        private float _lasetSize;        public void AddHander(DownloadHander downloadHander)        {            DownloadHanders.Add(downloadHander);        }        public void StartUpdate()        {            FileDownloadSystem.Instance.AddHanderGroup(this);            _isUpdate = true;        }        public void Update()        {            if (!_isUpdate)            {                return;            }            finishCount = 0;            bool isOk = true;                    size = 0;            for (int i = 0; i < DownloadHanders.Count; i++)            {                if (!DownloadHanders[i].isFinish)                {                    isOk = false;                }                else                {                    finishCount++;                }                if (DownloadHanders[i].UnityWebRequestAsyncOperation != null)                {                    size += DownloadHanders[i].UnityWebRequestAsyncOperation.webRequest.downloadedBytes;                }            }                        float t= Time.time - _lasetTime;            if (t>1)            {                              _lasetTime = Time.time;               speed=  (size - _lasetSize) / (t);               _lasetSize = size;            }                                  if (isOk)            {                _isUpdate = false;                OnCallBack?.Invoke();                FileDownloadSystem.Instance.RemoveHanderGroup(this);            }                   }    }}
 |