在游戏中往往需要加载大量的数据文件等等,尤其是模型,材质,贴图,特效等资源,这些资源数据量较大,加载起来可能较慢,这样会降低游戏的体验感。
unity中个开发者提供了一个解决方案——Asset Bundles(资源束)外部整合数据,开发者可用其管理资源。
使用原理比较简单:将目标资源制成 Prefab (预制体),将其包成 AssetBundle 类型,然后进行管理操作。
在这里我使用 Cube,Cylinder,Sphere 三个物体作为目标资源,
(1)将目标资源制作预制体:
(2)分别点击预制体,给每个预制体的 AssetBundle 设置名字(这里不区分大小写)
(3)上述步骤完成后,开始打包脚本(打包脚本放在 Editor 文件夹下,需手动创建此文件夹)
保存成功后,在 unity 菜单栏会出现一个 AssetBundle 的下拉菜单:Build(Single) and Build(Collection) 选项,然后点击进行打包~打包后会出现这么几个文件:
xyj_bundle 是整体打包,cube,cylinder,sphere是单个打包生成的文件,点开一个文件会有这样的信息:
这个是单个打包 Cube 后生成的文件,注意:最下一行:Asset/Prefab/Cube.prefab ,恭喜打包成功!
再看整体打包的文件信息:
注意最后 Asset:~打包成功!
(5)到这里,就是加载啦!看资源加载代码:
在看加载结果:
单个资源加载
整体资源加载
好,资源打包加载的原理就是这样的了,实际应用有待扩展~