public AssetLoadRequest(BundleLoadRequest createRequest)
 {
     createRequest.OnComplete += bundle =>
     {
         var request = bundle.LoadAllAssetsAsync <T>();
         request.completed += LoadAssets;
     };
 }
 public SceneLoadRequest(BundleLoadRequest bundleLoadRequest, string sceneName, LoadSceneMode loadSceneMode)
 {
     bundleLoadRequest.OnComplete += assetBundle =>
     {
         asyncOperation            = SceneManager.LoadSceneAsync(sceneName, loadSceneMode);
         asyncOperation.completed += onSceneLoadCompleted;
     };
 }
        public AssetLoadRequest(BundleLoadRequest createRequest, string assetKey)
        {
            createRequest.OnComplete += bundle =>
            {
                var request = bundle.LoadAssetAsync <T>(assetKey);

                request.completed += LoadAssets;
            };
        }
        /// <summary>
        /// Asynchronously load an asset bundle and its dependencies
        /// </summary>
        /// <param name="bundleName"></param>
        /// <returns></returns>
        public BundleLoadRequest LoadBundleAsync(string bundleName)
        {
            AssetBundle loadedBundle;

            if (assetBundleCache.TryGetBundle(bundleName, out loadedBundle))
            {
                return(new BundleLoadRequest(loadedBundle));
            }

            if (remoteProvider != null && remoteProvider.IsRemoteBundle(bundleName))
            {
                BundleLoadRequest bundleLoadRequest;

                if (currentDLCDownloadRequests.TryGetValue(bundleName, out bundleLoadRequest))
                {
                    return(bundleLoadRequest);
                }

                IBundleDownloadRequest downloadRequest = remoteProvider.DownloadBundle(bundleName);
                bundleLoadRequest = new BundleLoadRequest(downloadRequest);

                bundleLoadRequest.OnComplete += bundle =>
                {
                    currentDLCDownloadRequests.Remove(bundleName);

                    if (bundle != null)
                    {
                        assetBundleCache.AddBundle(bundleName, bundle, false);
                    }
                };

                currentDLCDownloadRequests.Add(bundleName, bundleLoadRequest);

                return(bundleLoadRequest);
            }

            var request      = LoadBundleFromFileAsync(bundleName, false);
            var dependencies = LoadBundleDependenciesAsync(bundleName);

            return(new BundleLoadRequest(request, dependencies));
        }