AssetBundle开发流程及实例

    最近在学习unity3d,刚好同事需要我帮她的项目做资源包加载部分,参考了很多网上资料,感觉都没找到能满足我所有需求的资料,所以自己整理一份作为记录,也是真正学习unity3d的开始。

    AssetBundle的开发流程:

    1、创建AssetBundle。unity5.x已经在编辑器中加入了AssetBundle创建工具,点击需要打包的prefab,在编辑器右下角资源属性窗口底部有一个名为“AssetBundle”的创建工具,通过new来创建,如图(最好加上后缀,如“.assetbundle”,后面有用)

AssetBundle开发流程及实例

剩下的导出工作由脚本来完成,在Assets窗口创建文件夹“Editor”,脚本就放在这里,实例代码如下

AssetBundle开发流程及实例

其中有两种打包方式,应用于windows平台下。

2、上传至服务器。创建好AssetBundle文件后,可通过上传工具将其上传到游戏的服务器中,使游戏客户端可以通过访问服务器来获取当前所需要的资源,进而实现游戏的更新。

3、下载AssetBundle。游戏在运行时,客户端会将服务器上传的游戏更新所需的AssetBundle下载到本地设备中,再通过加载模块将资源加载到游戏中。Unity提供了两种下载AssetBundle的方式:缓存机制和非缓存机制。非缓存机制实例代码如下

AssetBundle开发流程及实例

4、AssetBundle的加载和卸载。AssetBundle文件下载成功后,通过unity提供的API可以加载资源包里所包含的模型、纹理图、音频、动画、场景等来更新游戏客户端;卸载AssetBundle可以节约内存资源,并且保证资源的正常更新。实例代码如下(其中翻了相关资料来实现在unity中调用系统文件夹来实现对资源包的选择,这也是我想记录的一部分)

AssetBundle开发流程及实例AssetBundle开发流程及实例AssetBundle开发流程及实例