序
书接上文。本节我们来讲讲AssetBundle的下载与使用。在第一节Unity5新的AssetBundle机制01——构建中,我们已经准备好了需要的AssetBundles。本节我们就来使用这些保存好的资源。
实践
有两种方法可以下载AssetBundles:
非缓存式
new一个WWW对象的方式,AssetBundles不会保留在本地设备的unity缓存文件夹中。
我们使用这种方式来实践一下。打开第一节中已经准备好的工程。新建Scripts文件夹,并在其中新建脚本:
NonCacheBundle.cs
将代码多拽到Hierarchy视口中的MainCamera物体中,运行游戏,可以看到cube1被加载到场景中。
缓存方式
使用WWW.LoadFromCacheOrDownload接口。AssetBundles将保存在本地设备的Unity的缓存文件夹中。WebPlayer 有50MB的缓存上限,PC/Mac/Android/IOS应有有4 GB的缓存上限。这种方式也是加载AssetBundle推荐的方式。我们使用这种方式来实践一下。在Scripts文件夹中新建脚本:
CacheBundle.cs
同样将该脚本拖动到MainCamera中,运行游戏,可以看到Cube2被加载进场景中。这是最终运行效果:
当我们访问www对象的.assetBundle属性时,下载好的数据被解压并创建了AssetBundle对象。此时就可以加载该AssetBundle中的所有资源。
使用异步方法
前两个例子中,我们都使用了AssetBundle类中的LoadAsset接口,这是一个同步的方法。这里提供一个异步的示例:
LoadAsyncBundle.cs
至此,Unity5中新的AssetBundle机制的使用已经大致讲完啦。当然还有许多细节无法赘述,大家可以通过查看官方文档继续了解。有问题欢迎和我一起讨论。
参考连接:
http://docs.unity3d.com/Manual/DownloadingAssetBundles.html
http://docs.unity3d.com/Manual/LoadingAssetBundles.html