예제 #1
0
        private void UpdateRequest(PlayAssetPackRequestImpl request, AssetPackState newState, int errorCode)
        {
            if (request.IsDone)
            {
                // Ignore pack state updates associated with completed requests.
                return;
            }

            var assetDeliveryErrorCode = PlayCoreTranslator.TranslatePlayCoreErrorCode(errorCode);

            if (assetDeliveryErrorCode != AssetDeliveryErrorCode.NoError)
            {
                request.OnErrorOccured(assetDeliveryErrorCode);
                return;
            }

            if (newState.Status == PlayCoreTranslator.AssetPackStatus.Canceled)
            {
                request.OnErrorOccured(AssetDeliveryErrorCode.Canceled);
                return;
            }

            request.UpdateState(PlayCoreTranslator.TranslatePlayCorePackStatus(newState.Status),
                                newState.BytesDownloaded,
                                newState.TotalBytesToDownload);
        }
예제 #2
0
 private void InitiateRequest(PlayAssetPackRequestImpl request)
 {
     if (IsDownloaded(request.AssetPackName))
     {
         request.OnPackAvailable();
     }
     else
     {
         var fetchTask = _assetPackManager.Fetch(request.AssetPackName);
         fetchTask.RegisterOnSuccessCallback(javaPackStates =>
         {
             request.OnInitializedInPlayCore();
             fetchTask.Dispose();
         });
         fetchTask.RegisterOnFailureCallback((reason, errorCode) =>
         {
             Debug.LogErrorFormat("Failed to retrieve asset pack: {0}", reason);
             request.OnErrorOccured(PlayCoreTranslator.TranslatePlayCoreErrorCode(errorCode));
             fetchTask.Dispose();
         });
     }
 }