| | |
| | |
|
| | | public bool inGameDownLoadAllow = false;
|
| | |
|
| | |
|
| | | |
| | | public float progress {
|
| | | get {
|
| | | return Mathf.Clamp01((float)showDownLoadedSize / showTotalSize);
|
| | |
| | | }
|
| | | } |
| | | |
| | | int workingQueueMaxCount = 1; |
| | | |
| | | IEnumerator Co_StartDownLoad()
|
| | | {
|
| | |
| | | workingQueue.Clear();
|
| | | okCount = 0;
|
| | |
|
| | | var downLoadTasksQueues = new Queue<AssetVersion>();
|
| | |
|
| | | for (int i = 0; i < tasks.Count; i++)
|
| | | {
|
| | | var assetVersion = tasks[i];
|
| | | if (!assetVersion.localValid)
|
| | | {
|
| | | var remoteURL = StringUtility.Contact(VersionUtility.Instance.versionInfo.GetResourcesURL(VersionConfig.Get().branch), "/", assetVersion.relativePath);
|
| | | var localURL = StringUtility.Contact(ResourcesPath.Instance.ExternalStorePath, assetVersion.relativePath);
|
| | |
|
| | | var remoteFile = new RemoteFile();
|
| | | workingQueue.Add(remoteFile);
|
| | | remoteFile.Init(remoteURL, localURL, assetVersion, true);
|
| | | remoteFile.Begin(OnFileDownLoadCompleted);
|
| | | downLoadTasksQueues.Enqueue(assetVersion);
|
| | | }
|
| | | else
|
| | | {
|
| | |
| | |
|
| | | while (okCount < totalCount)
|
| | | {
|
| | | while (workingQueue.Count < 2 && downLoadTasksQueues.Count > 0)
|
| | | {
|
| | | var assetVersion = downLoadTasksQueues.Dequeue();
|
| | | var remoteURL = StringUtility.Contact(VersionUtility.Instance.versionInfo.GetResourcesURL(VersionConfig.Get().branch), "/", assetVersion.relativePath);
|
| | | var localURL = StringUtility.Contact(ResourcesPath.Instance.ExternalStorePath, assetVersion.relativePath);
|
| | |
|
| | | var remoteFile = new RemoteFile();
|
| | | workingQueue.Add(remoteFile);
|
| | | remoteFile.Init(remoteURL, localURL, assetVersion, true);
|
| | | remoteFile.Begin(OnFileDownLoadCompleted);
|
| | | }
|
| | | yield return null;
|
| | | }
|
| | |
|
| | |
| | | |
| | | private void OnFileDownLoadCompleted(bool _ok, AssetVersion _assetVersion)
|
| | | {
|
| | | foreach (var remote in workingQueue)
|
| | | {
|
| | | if (remote.assetVersion == _assetVersion)
|
| | | {
|
| | | workingQueue.Remove(remote);
|
| | | break;
|
| | | }
|
| | | }
|
| | |
|
| | | if (_ok)
|
| | | {
|
| | | okCount++;
|