官方文檔給出的是這樣的
1 IEnumerator InstantiateObject() 2 { 3 string uri = "file:///" + Application.dataPath + "/AssetBundles/" + assetBundleName;//ab包路徑 4 UnityEngine.Networking.UnityWebRequest request = UnityEngine.Networking.UnityWebRequest.GetAssetBundle(uri, 0);//獲取UnityWebRequest 5 yield return request.Send();//等待獲取完成 6 AssetBundle bundle = DownloadHandlerAssetBundle.GetContent(request);//再獲取到ab包 7 GameObject cube = bundle.LoadAsset<GameObject>("Cube"); 8 GameObject sprite = bundle.LoadAsset<GameObject>("Sprite"); 9 Instantiate(cube); 10 Instantiate(sprite); 11 }
這段代碼在unity2017里是沒什么問題的,但在unity2019有些api改掉了,直接復制粘貼會報錯
改成這樣就 可以了
1 IEnumerator DownloaAssetBundle(string name) 2 { 3 string uri = @"http://localhost/AssetBundles/" + name;//ab包路徑 4 UnityWebRequest request = UnityWebRequestAssetBundle.GetAssetBundle(uri);//獲取UnityWebReuest 5 yield return request.SendWebRequest();//等待獲取完成 6 AssetBundle bundle = DownloadHandlerAssetBundle.GetContent(request);//獲取ab包 7 GameObject cube = bundle.LoadAsset<GameObject>("Cube"); 8 GameObject sprite = bundle.LoadAsset<GameObject>("Sprite"); 9 Instantiate(cube); 10 Instantiate(sprite); 11 }