private IEnumerator CoLoadAssetPackBatch() { #if PLAY_ASSET_DELIVERY_EXPERIMENTAL var assetPackNames = Assets.Select(a => a.AssetPackName).Distinct().ToList(); _batchRequest = PlayAssetDelivery.RetrieveAssetPackBatchAsync(assetPackNames); _requestInProgress = true; while (!_batchRequest.IsDone) { var totalProgress = 0f; foreach (var request in _batchRequest.Requests.Values) { totalProgress += request.DownloadProgress; } Display.SetProgress(totalProgress / _batchRequest.Requests.Count); Display.SetStatus(AssetDeliveryStatus.Retrieving, AssetDeliveryErrorCode.NoError); yield return(null); } var allSucceeded = true; foreach (var request in _batchRequest.Requests.Values) { if (request.Error != AssetDeliveryErrorCode.NoError) { Display.SetStatus(request.Status, request.Error); allSucceeded = false; break; } } if (allSucceeded) { Display.SetProgress(1f); Display.SetStatus(AssetDeliveryStatus.Available, AssetDeliveryErrorCode.NoError); } _requestInProgress = false; #else // Assign values to avoid unassigned variable warning. _batchRequest = null; _requestInProgress = false; throw new Exception("Experimental Play Asset Delivery methods are disabled."); #endif }
private IEnumerator CoLoadAssetPackBatch() { var assetPackNames = Assets.Select(a => a.AssetPackName).Distinct().ToList(); _batchRequest = PlayAssetDelivery.RetrieveAssetPackBatchAsync(assetPackNames); _requestInProgress = true; while (!_batchRequest.IsDone) { var totalProgress = 0f; foreach (var request in _batchRequest.Requests.Values) { totalProgress += request.DownloadProgress; } Display.SetProgress(totalProgress / _batchRequest.Requests.Count); Display.SetStatus(AssetDeliveryStatus.Retrieving, AssetDeliveryErrorCode.NoError); yield return(null); } var allSucceeded = true; foreach (var request in _batchRequest.Requests.Values) { if (request.Error != AssetDeliveryErrorCode.NoError) { Display.SetStatus(request.Status, request.Error); allSucceeded = false; break; } } if (allSucceeded) { Display.SetProgress(1f); Display.SetStatus(AssetDeliveryStatus.Available, AssetDeliveryErrorCode.NoError); } _requestInProgress = false; }