unity之Asset Bundle资源打包加载
2017-12-08 15:42
731 查看
在游戏中往往需要加载大量的数据文件等等,尤其是模型,材质,贴图,特效等资源,这些资源数据量较大,加载起来可能较慢,这样会降低游戏的体验感。
unity中个开发者提供了一个解决方案——Asset Bundles(资源束)外部整合数据,开发者可用其管理资源。
使用原理比较简单:将目标资源制成 Prefab (预制体),将其包成 AssetBundle 类型,然后进行管理操作。
在这里我使用 Cube,Cylinder,Sphere 三个物体作为目标资源,
(1)将目标资源制作预制体:
![](https://img-blog.csdn.net/20171208150848589?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHlqX3N1bnNoaW5l/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
(2)分别点击预制体,给每个预制体的 AssetBundle 设置名字(这里不区分大小写)
![](https://img-blog.csdn.net/20171208151849026?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHlqX3N1bnNoaW5l/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20171208151858752?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHlqX3N1bnNoaW5l/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20171208151907256?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHlqX3N1bnNoaW5l/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
(3)上述步骤完成后,开始打包脚本(打包脚本放在 Editor 文件夹下,需手动创建此文件夹)
![](https://img-blog.csdn.net/20171208152144438?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHlqX3N1bnNoaW5l/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
保存成功后,在 unity 菜单栏会出现一个 AssetBundle 的下拉菜单:Build(Single) and Build(Collection) 选项,然后点击进行打包~打包后会出现这么几个文件:
![](https://img-blog.csdn.net/20171208153125529?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHlqX3N1bnNoaW5l/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
xyj_bundle 是整体打包,cube,cylinder,sphere是单个打包生成的文件,点开一个文件会有这样的信息:
![](https://img-blog.csdn.net/20171208153315906?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHlqX3N1bnNoaW5l/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
这个是单个打包 Cube 后生成的文件,注意:最下一行:Asset/Prefab/Cube.prefab ,恭喜打包成功!
再看整体打包的文件信息:
![](https://img-blog.csdn.net/20171208153532701?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHlqX3N1bnNoaW5l/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
注意最后 Asset:~打包成功!
(5)到这里,就是加载啦!看资源加载代码:
![](https://img-blog.csdn.net/20171208153802958?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHlqX3N1bnNoaW5l/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
在看加载结果:
单个资源加载
![](https://img-blog.csdn.net/20171208153834336?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHlqX3N1bnNoaW5l/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
整体资源加载
![](https://img-blog.csdn.net/20171208153938539?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHlqX3N1bnNoaW5l/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
好,资源打包加载的原理就是这样的了,实际应用有待扩展~
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)到这里,就是加载啦!看资源加载代码:
在看加载结果:
单个资源加载
整体资源加载
好,资源打包加载的原理就是这样的了,实际应用有待扩展~
相关文章推荐
- Unity—AssetBundle的打包及四种加载资源方式
- Unity 关于AssetBundle(资源束)打包和加载(一)
- Unity中 BundleAsset资源的打包和解析加载
- Unity5.x ScriptableObject数据存储结合AssetBundle打包实现数据资源热更新
- Unity中AssetBundle的打包和加载
- unity 《专题系列》资源打包 Asset Bundles 第三节 Asset Bundles 加载
- unity 《专题系列》资源打包 Asset Bundles 第四节 Asset Bundles 加载manifest
- Unity打包AssetBundle自动分析资源依赖关系(包括UGUI图集打包)
- 关于unity 中使用AssetBundle加载资源,shader偶尔会丢失的问题解决办法
- C# Unity用AssetBundle加载本地资源 (1)
- Unity最新版打包AssetBundle和加载的方法
- unityassetbundle 打包存放百度云加载
- 【unity】AssetBundle共享资源及依赖资源打包
- Unity资源处理机制(Assets/WWW/AssetBundle/...)读取和加载资源方式详解
- unity AssetBundle打包以及加载
- unity学习日记:AssetBundle工作流程之资源的打包与加载
- 【Unity】资源打包AssetBundle的概念和流程
- Unity AssetBundle资源打包,Depend依赖关系
- unity5.X AssetBundle资源打包(一 )
- Unity资源打包之Assetbundle