IEnumerator Start () { UnityWebRequest request = UnityWebRequest.GetAssetBundle (baseUrl + "AssetBundle",0); yield return request.SendWebRequest (); AssetBundle ab = DownloadHandlerAssetBundle.GetContent (request); AssetBundleManifest abm = ab.LoadAsset<AssetBundleManifest> ("AssetBundleManifest"); foreach (var a in abm.GetAllDependencies("cub")) { using (UnityWebRequest r = UnityWebRequest.GetAssetBundle (baseUrl + a, 0)) { yield return r.SendWebRequest (); DownloadHandlerAssetBundle.GetContent (r);//加载到依赖包到内存中 } } //依赖包加载完成加载完成后,实例化Cube才不会丢失材质和贴图 using (UnityWebRequest r = UnityWebRequest.GetAssetBundle (baseUrl + "cub")) { yield return r.SendWebRequest (); AssetBundle assb = DownloadHandlerAssetBundle.GetContent (r); GameObject go = assb.LoadAsset<GameObject> ("Cube"); Instantiate (go); } }
还记得那个怎么都有的AssetBundle文件吗,没错,这里记载了所有你打包出来的AssetBundle的依赖
加载名字叫做那个就是那个AssetBundle的文件,获取Manifest,通过GetAllDependencies()获取cub的依赖(字符串,包名),因为等下我要加载cub里面的Cube