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)); }