private void SetupDownloadOperation(AssetStoreDownloadOperation operation) { m_DownloadOperations[operation.packageUniqueId] = operation; operation.onOperationError += (op, error) => onDownloadError?.Invoke(op, error); operation.onOperationFinalized += OnDownloadFinalized; operation.onOperationProgress += (op) => onDownloadProgress?.Invoke(op); operation.onOperationPaused += (op) => onDownloadPaused?.Invoke(op); }
public virtual void Download(IPackage package) { var packageId = package?.uniqueId; if (string.IsNullOrEmpty(packageId)) { return; } var operation = GetDownloadOperation(packageId); if (operation?.isInProgress ?? false) { return; } var localInfo = m_AssetStoreCache.GetLocalInfo(packageId); operation = new AssetStoreDownloadOperation(m_AssetStoreUtils, m_AssetStoreRestAPI, m_AssetStoreCachePathProxy, packageId, localInfo?.packagePath); SetupDownloadOperation(operation); operation.Download(false); }