Asynchronously predownloads autostreaming assets in go and checks if loaded.
using System.Collections; using System.IO; using UnityEngine; using UnityEngine.Networking;
public class LoadBundleTest : MonoBehaviour { private void Start() { StartCoroutine(LoadTest()); }
IEnumerator LoadTest() { UnityWebRequest unityWebRequest = UnityWebRequestAssetBundle.GetAssetBundle(Path.Combine(Application.streamingAssetsPath, "AssetBundles/bundle")); yield return unityWebRequest.SendWebRequest(); AssetBundle ab = (unityWebRequest.downloadHandler as DownloadHandlerAssetBundle).assetBundle; if (ab != null) { AssetBundleRequest assetBundleRequest = ab.LoadAssetAsync<GameObject>("prefab"); yield return assetBundleRequest;
AsyncOperation operation = AutoStreaming.PreDownloadAsAssetAsync((GameObject)assetBundleRequest.allAssets[0]); yield return operation; Instantiate(assetBundleRequest.allAssets[0] as GameObject); } } }