AssetBundle的加载有以下几种方式
- 从内存加载LoadFromMemoryAsync
- 从本地文件加载LoadFromFile
- 从服务器上Web上加载UnityWbRequest
具体的使用
第一种加载方式(LoadFromMemoryAsync)从内存加载
public class AssetsBundleLoad : MonoBehaviour
{
private IEnumerator LoadBundle(string URL)
{
AssetBundleCreateRequest ret = AssetBundle.LoadFromMemoryAsync(File.ReadAllBytes(URL));
yield return ret;
AssetBundle bundle = ret.assetBundle;
//加载Bundle中全部的资源
Object[] objs = bundle.LoadAllAssets();
//加载Bundle中某个资源
Object obj = bundle.LoadAsset("Res");
}
}
第二种方式(UnityWebRequest)从本地加载
public class AssetsBundleLoad1 : MonoBehaviour
{
private IEnumerator LoadBundle(string URL)
{
UnityWebRequest request = UnityWebRequest.Get(URL);
yield return request.SendWebRequest();
AssetBundle bundle = DownloadHandlerAssetBundle.GetContent(request);
//加载Bundle中全部的资源
Object[] objs = bundle.LoadAllAssets();
//加载Bundle中某个资源
Object obj = bundle.LoadAsset("Res");
}
}
第三种方式(LoadFromFile)从服务器或者本地加载
public class AssetsBundleLoad3 : MonoBehaviour
{
private IEnumerator LoadBundle(string URL)
{
AssetBundleCreateRequest request = AssetBundle.LoadFromFileAsync(URL);
yield return request;
AssetBundle bundle = request.assetBundle;
//加载Bundle中全部的资源
Object[] objs = bundle.LoadAllAssets();
//加载Bundle中某个资源
Object obj = bundle.LoadAsset("Res");
}
}