1,从二进制文件中异步加载AB
IEnumerator LoadAB()
{
AssetBundleCreateRequest request = AssetBundle.LoadFromMemoryAsync(File.ReadAllBytes(path));
yield return request;
AssetBundle ab = request.assetBundle;
GameObject monster = ab.LoadAsset<GameObject>("Monster");
Instantiate(monster);
}
2,资源同步加载
Instantiate(AssetBundle.LoadFromMemory(File.ReadAllBytes(path)).LoadAsset<GameObject>("Monster"));
3,从文件中进行直接加载
AssetBundle ab = AssetBundle.LoadFromFile("AssetBundles/scene/monster.ab");
GameObject monster= ab.LoadAsset<GameObject>("Monster");
Instantiate(monster);
4,从文件中进行异步加载
IEnumerator LoadCacheOrDownloadFromFile(string path)
{
WWW www = WWW.LoadFromCacheOrDownload(path, 1);
yield return www;
if( !string.IsNullOrWhiteSpace(www.error) )
{
Debug.Log(www.error);
yield break;
}
AssetBundle ab = www.assetBundle;
GameObject monster = ab.LoadAsset<GameObject>("Monster");
Instantiate(monster);
}
5,网页加载 UnityWebRequest(一)
UnityWebRequest request = UnityWebRequestAssetBundle.GetAssetBundle(path);
yield return request.SendWebRequest();
AssetBundle ab = DownloadHandlerAssetBundle.GetContent(request);
GameObject monster = ab.LoadAsset<GameObject>("Monster");
Instantiate(monster);
6,网页加载 UnityWebRequest(二)
UnityWebRequest request = UnityWebRequest.Get(path);
request.downloadHandler = new DownloadHandlerAssetBundle (path, 0);
yield return request.SendWebRequest();
AssetBundle ab = DownloadHandlerAssetBundle.GetContent(request);
GameObject monster = ab.LoadAsset<GameObject>("Monster");
Instantiate(monster);
7,网页加载 UnityWebRequest(三)
UnityWebRequest request = UnityWebRequestAssetBundle.GetAssetBundle(path);
yield return request.SendWebRequest();
AssetBundle ab = (request.downloadHandler as DownloadHandlerAssetBundle).assetBundle;
GameObject monster = ab.LoadAsset<GameObject>("Monster");
Instantiate(monster);
8,读取Manifest文件,获取它们的依赖关系并且加载出来
AssetBundle manifestAB = AssetBundle.LoadFromFile("AssetBundles/AssetBundles");
AssetBundleManifest manifest = manifestAB.LoadAsset<AssetBundleManifest>("AssetBundleManifest");
string[] strArr = manifest.GetAllDependencies("scene/monster.ab");
foreach (var item in strArr)
{
AssetBundle.LoadFromFile("AssetBundles/" + item);
}