官方文档给出的是这样的
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 }