AssetBundle打包优化解决方式
第一阶段:AssetBundle出一套解决方式
1、解决如今同一个资源打2个bundle的冗余问题
2、測试验证节省资源的比率是多少
问题拆分
一、bundle反复
问 题 :同样资源拆分问题?
解决方式:1、制作场景时将同样部分分开
制作方法:将每一个场景同样部分放到同一个文件夹,不同部分保留在场景中
打包方法:a、打成独立的bundle,不同部分放到每一个场景中打成bundle
b、用xml记录下每一个场景中公共部分的transform,bundle名称、资源名称、父节点信息
优 点:打包工具的实现方便、快捷
缺 点:制作时对美术有一定要求,尤其在加入新的场景
2、将场景中对象分为资源对象和骨架对象,资源对象用tag标记为Element。
资源对象:每个资源对象生成独立的预设。形成新的公共的bundle。
骨架对象:和正常的场景打包一样。
制作方法:每一个场景正常制作,将场景中对象分为资源对象和骨架对象。资源对象用tag标记为Element。
打包方法:a、直接对场景打包。打包时依据tag生成不同的bundle
b、用xml记录每一个场景中每一个gameobject transform、bundle名称、父节点信息
优 点:仅仅要设置tag,不需区分是否是公共资源
缺 点:打包工具的实现比較复杂
xml文件格式:
<Bundle name = "" count = "">
<Element name= "" parentname = "" localtran=",,,,,,,,,"> </Element>
<Element name= "" parentname = "" localtran=",,,,,,,,,"> </Element>
</Bundle>
综上所说。我们将用方案2进行编写并实现。
二、验证百分比
解决方式: 节省资源百分比 = 1 - (上面两种方式打bundle中的任一种bundle的大小/传统方式bundle大小 *100%)。
一个场景时:
场 景:90001
比 较:1、传统打bundle大小(一个文件) :90001.assetBundles:3.83MB
2、使用方案二打bundle大小(三个文件):90001.assetBundles :846KB
common_sub.assetBundles:3.39MB
90001.txt : 81KB
共 4.28MB
百分比:1 - 4.28 / 3.83 = -11.7%;
结 论:bundle大小与在场景中使用同样资源对象数量无关,与文件多少有关
两个场景时:
场景:90001 11001
比較:1、传统打bundle大小(两个文件): 90001.assetBundles : 3.83 MB
11001.assetBundles : 4.82 MB
共 8.65MB
2、使用方案二打bundle大小(五个文件):90001.assetBundles :846KB
11001.assetBundles :526KB
common_sub.assetBundles:4.93MB
11001.txt : 248 KB
90001.txt : 81KB
共 6.60MB
百分比:1- (6.60 / 8.65) = 13.7%;
结论:bundle大小与两个场景中复用同样资源对象有关,场景越多。复用同样资源对象越多,bundle的总的大小相对越小
=========================================================================================================
第二阶段:AssetBundle场景打包工具
一、完好打包工具
1、将场景打包工具整合到一起
二、载入assetbundle到场景中
1、载入场景assetbundle资源
2、载入xml文件
3、载入公共assetbundle资源
=========================================================================================================
第三阶段: assetbundle加版本 和其他
一、assetbundle加版本 和其他
1、将assetbundle放到txt文件里,实现读取和写入
2、加入新的assetbundle输出路径
=========================================================================================================
第四阶段:Assetbundle打包区域地图的场景
1、研究区域地图引擎bake的navmesh和lightmap动态载入问题
2、编写区域地图打包工具
3、navmesh、lightmap、以及场景三个打包工具
4、将以上三个打包工具整合成一个
AssetBundle打包优化解决方式的更多相关文章
- Linux转发性能评估与优化-转发瓶颈分析与解决方式(补遗)
补遗 关于网络接收的软中断负载均衡,已经有了成熟的方案,可是该方案并不特别适合数据包转发,它对server的小包处理非常好.这就是RPS.我针对RPS做了一个patch.提升了其转发效率. 下面是我转 ...
- Linux转发性能评估与优化(转发瓶颈分析与解决方式)
线速问题 非常多人对这个线速概念存在误解. 觉得所谓线速能力就是路由器/交换机就像一根网线一样. 而这,是不可能的.应该考虑到的一个概念就是延迟. 数据包进入路由器或者交换机,存在一个核心延迟操作,这 ...
- [Unity3D] 5.0 图集合并扩展工具,用于解决UGUI与AssetBundle打包造成资源包过大的问题
[Unity3D] 5.0 图集合并扩展工具,用于解决UGUI与AssetBundle打包造成资源包过大的问题 2017年07月05日 15:57:44 阅读数:1494 http://www.cpp ...
- 使用构建工具gradle打包时,遇到的中文问题和解决方式
1.使用gradle clean war 命令将项目打成war包.这一过程gradle没有提示报错. 2.将得到的myapp.war复制到tomcat下webapps(部署war包) 3.启动to ...
- Eclipse打包Android项目时用到proguard.cfg后,出现的Warning:can't find referenced class问题的解决方式
Warning: can't find superclass or interface Warning: can't find referenced class 这两个问题的解决方法: 1.要把你项目 ...
- Android内存优化-内存泄漏的几个场景以及解决方式
转自:http://blog.csdn.net/a910626/article/details/50849760 一.什么是内存泄漏 在Java程序中,如果一个对象没有利用价值了,正常情况下gc是会对 ...
- 【厚积薄发】Crunch压缩图片的AssetBundle打包
这是第133篇UWA技术知识分享的推送.今天我们继续为大家精选了若干和开发.优化相关的问题,建议阅读时间10分钟,认真读完必有收获. UWA 问答社区:answer.uwa4d.com UWA QQ群 ...
- 小型Web页打包优化(下)
之前我们推送了一篇小型Web项目打包优化文章,(链接),我们使用了一段时间, 在这过程中我们也一直在思考, 怎么能把结构做的更好.于是我们改造了一版, 把可以改进的地方和可能会出现的问题, 在这一版中 ...
- 记一次webpack打包优化
未进行打包优化的痛点: 随着项目的不断扩大,引入的第三方库会越来越多,我们每次build的时候会对所有的文件进行打包,耗时必定很长,不利于日常开发. 解决思路: 第三方库我们只是引入到项目里来,一般不 ...
随机推荐
- Python Study (01) 之 特殊方法
Python深入:特殊方法和多范式 Python是一切皆对象,意思就是python的天生就是个"纯面向对象语言"呀. 但是!!! Python还是一个多范式语言(multi-par ...
- 单词数 (STL set集合)
单词数 Problem Description lily的好朋友xiaoou333近期非常空.他想了一件没有什么意义的事情.就是统计一篇文章里不同单词的总数.以下你的任务是帮助xiaoou333解决问 ...
- Java - 经常使用函数Random函数
http://blog.csdn.net/pipisorry/article/details/44411541 Random()函数生成随机数 java.util.Random 在Java的API帮助 ...
- SqlHelper——仅仅由于在人群中多看了你一眼
一.SqlHelper 出场 不是由于大家都在用SqlHelper所以才用,是由于连接数据库关闭数据库查询数据库的多了也就加上了SqlHelper.当你的非常多需求都有一个同样的方法的时候我们没有必要 ...
- 0x07 贪心
被虐爆了...贪心这种玄学东西还可以证吗??除了范围缩放算是可以想想比较经典(倍增第一题?)... poj3614:这道题想了很久,并没有想到是把minSPF按大到小排序,一直的思想是小的就小到大排序 ...
- bzoj1786: [Ahoi2008]Pair 配对&&1831: [AHOI2008]逆序对
一个自以为很对的东西,我们往-1放的数肯定是不增的. 然后就预处理一下,假如i这个位置放j会多多少逆序对. DP一下,我的复杂度应该是O(n*m^2)的,然而你随便搞都能省掉一个m吧,我算了算好像可以 ...
- Linux学习之基本介绍
技术不分年龄高低,只分水平高低. 搞技术25k以下是不看天赋的,25k以上是要看天赋的. 1U服务器,2U服务器,刀片服务器.程序都是运行在服务器上的. 榜样的力量是无穷的.--MK. 汇编语言跟硬件 ...
- Http multipart/form-data多参数Post方式上传数据
最近,工作中遇到需要使用java实现http发送get.post请求,简单的之前经常用到,但是这次遇到了上传文件的情况,之前也没深入了解过上传文件的实现,这次才知道通过post接口也可以,是否还有其他 ...
- java1.8对集合中对象的特有属性进行排序
每天学习一点点,知识财富涨点点 1.创建对象user12 2.编写测试类 3.输出结果 加油!!!!
- 利用IOC—— Castle进行对象映射,以及结合Nhibernate访问数据库
相信很多人对IOC这个概念并不陌生,简而言之其核心就是利用反射来创建对象来实现解耦. 具体这么做解耦的好处是什么,因为鄙人做的项目还不多,所以还没体会到. 但好的项目大概是这样的 就是实现“高内聚,低 ...