Beispiel #1
0
            // Used by AssetStoreUtils
            public void OnDownloadProgress(string productId, string message, ulong bytes, ulong total)
            {
                DownloadProgress progress;

                if (!GetDownloadProgress(productId, out progress))
                {
                    if (productId.StartsWith(k_AssetStoreDownloadPrefix))
                    {
                        productId = productId.Substring(k_AssetStoreDownloadPrefix.Length);
                    }
                    progress = new DownloadProgress(productId)
                    {
                        state = DownloadProgress.State.InProgress, errorMessage = string.Empty
                    };
                    m_Downloads[AssetStoreCompatibleKey(productId)] = progress;
                }

                progress.current = bytes;
                progress.total   = total;

                if (message == "ok")
                {
                    progress.state = DownloadProgress.State.Completed;
                }
                else if (message == "connecting")
                {
                    progress.state = DownloadProgress.State.Started;
                }
                else if (message == "downloading")
                {
                    progress.state = DownloadProgress.State.InProgress;
                }
                else if (message == "decrypt")
                {
                    progress.state = DownloadProgress.State.Decrypting;
                }
                else if (message == "aborted")
                {
                    progress.state = DownloadProgress.State.Aborted;
                }
                else
                {
                    progress.state        = DownloadProgress.State.Error;
                    progress.errorMessage = s_LocalizedDownloadErrorMessage;
                    Debug.LogError(message);
                }

                onDownloadProgress?.Invoke(progress);
            }
Beispiel #2
0
 private void OnDownloadProgress(IPackage package, DownloadProgress progress)
 {
     if (displayVersion?.packageUniqueId == package.uniqueId)
     {
         if (progress.state == DownloadProgress.State.Error || progress.state == DownloadProgress.State.Aborted)
         {
             downloadProgress.Hide();
             RefreshErrorDisplay();
         }
         else
         {
             downloadProgress.SetProgress(progress.total == 0 ? 0 : progress.current / (float)progress.total);
         }
         RefreshImportAndDownloadButtons();
     }
 }
Beispiel #3
0
        private void OnDownloadProgress(IPackage package, DownloadProgress progress)
        {
            var item = GetPackageItem(package);

            if (item != null)
            {
                if (progress.state == DownloadProgress.State.Completed || progress.state == DownloadProgress.State.Aborted || progress.state == DownloadProgress.State.Error)
                {
                    item.StopSpinner();
                    item.SetPackage(package);
                }
                else
                {
                    item.StartSpinner();
                }
            }
        }
            private void OnDownloadProgress(DownloadProgress progress)
            {
                var package = GetPackage(progress.packageId);

                if (package != null)
                {
                    var hasError = progress.state == DownloadProgress.State.Error || progress.state == DownloadProgress.State.Aborted;
                    if (hasError)
                    {
                        package.AddError(new Error(NativeErrorCode.Unknown, progress.message));
                    }

                    if (progress.state == DownloadProgress.State.Completed)
                    {
                        AssetStore.AssetStoreClient.instance.Refresh(package);
                    }

                    onDownloadProgress?.Invoke(package, progress);
                }
            }
            private void OnDownloadProgress(DownloadProgress progress)
            {
                var package = GetPackage(progress.productId);

                if (package != null)
                {
                    var hasError  = progress.state == DownloadProgress.State.Error || progress.state == DownloadProgress.State.Aborted;
                    var completed = progress.state == DownloadProgress.State.Completed;
                    if (hasError)
                    {
                        AddPackageError(package, new Error(NativeErrorCode.Unknown, progress.errorMessage));
                    }

                    if (completed)
                    {
                        AssetStore.AssetStoreClient.instance.RefreshLocal();
                    }

                    SetPackageProgress(package, hasError || completed ? PackageProgress.None : PackageProgress.Downloading);
                    onDownloadProgress?.Invoke(package, progress);
                }
            }
Beispiel #6
0
            public void Download(string productId)
            {
                DownloadProgress progress;

                if (GetDownloadProgress(productId, out progress))
                {
                    if (progress.state != DownloadProgress.State.Started &&
                        progress.state != DownloadProgress.State.InProgress &&
                        progress.state != DownloadProgress.State.Decrypting)
                    {
                        m_Downloads.Remove(AssetStoreCompatibleKey(productId));
                        AssetStoreDownloadOperation.instance.ClearDownloadInformation(productId);
                    }
                    else
                    {
                        onDownloadProgress?.Invoke(progress);
                        return;
                    }
                }

                progress = new DownloadProgress(productId);
                m_Downloads[AssetStoreCompatibleKey(productId)] = progress;
                onDownloadProgress?.Invoke(progress);

                var id = long.Parse(productId);

                AssetStoreDownloadOperation.instance.DownloadUnityPackageAsync(id, result =>
                {
                    progress.state = result.downloadState;
                    if (result.downloadState == DownloadProgress.State.Error)
                    {
                        progress.errorMessage = result.errorMessage;
                    }

                    onDownloadProgress?.Invoke(progress);
                });
            }
Beispiel #7
0
 public bool GetDownloadProgress(string productId, out DownloadProgress progress)
 {
     progress = null;
     return(m_Downloads.TryGetValue(AssetStoreCompatibleKey(productId), out progress));
 }