AssetBundle中的资源加载有两种,分别是从本地加载,一种是访问服务器进行加载,目前Unity中可以把两个整合到一起,只用该少量的代码就能实现从本地加载,到访问服务器来对资源的加载。下面介绍的就是这种。
IEnumerator LoadFromUnityWebRequest()
{
//从本地
string url = @"file:///D:\vc\U3D\Json_Demo\AssetsBundle\cube.prefab";
//从服务器中
string urlWeb = @"http://localhost/AssetsBundle/cube.prefab";
//访问
UnityWebRequest request = UnityWebRequest.GetAssetBundle(urlWeb);
//下载
yield return request.SendWebRequest();
//从本地加载
AssetBundle ab1 = DownloadHandlerAssetBundle.GetContent(request);
//服务器端加载
AssetBundle ab = (request.downloadHandler as DownloadHandlerAssetBundle).assetBundle;
//加载所有cube
GameObject cubePre = ab.LoadAsset<GameObject>("cube");
//加载所有的对象,让其复制出来
Object[] obj = ab.LoadAllAssets();
foreach (var o in obj)
{
Instantiate(o);
}
}
注意,得加个using UnityEngine.Networking 才能调用UnityWebRequest方法。