第一阶段: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打包优化解决方式的更多相关文章

  1. Linux转发性能评估与优化-转发瓶颈分析与解决方式(补遗)

    补遗 关于网络接收的软中断负载均衡,已经有了成熟的方案,可是该方案并不特别适合数据包转发,它对server的小包处理非常好.这就是RPS.我针对RPS做了一个patch.提升了其转发效率. 下面是我转 ...

  2. Linux转发性能评估与优化(转发瓶颈分析与解决方式)

    线速问题 非常多人对这个线速概念存在误解. 觉得所谓线速能力就是路由器/交换机就像一根网线一样. 而这,是不可能的.应该考虑到的一个概念就是延迟. 数据包进入路由器或者交换机,存在一个核心延迟操作,这 ...

  3. [Unity3D] 5.0 图集合并扩展工具,用于解决UGUI与AssetBundle打包造成资源包过大的问题

    [Unity3D] 5.0 图集合并扩展工具,用于解决UGUI与AssetBundle打包造成资源包过大的问题 2017年07月05日 15:57:44 阅读数:1494 http://www.cpp ...

  4. 使用构建工具gradle打包时,遇到的中文问题和解决方式

    1.使用gradle  clean  war 命令将项目打成war包.这一过程gradle没有提示报错. 2.将得到的myapp.war复制到tomcat下webapps(部署war包) 3.启动to ...

  5. Eclipse打包Android项目时用到proguard.cfg后,出现的Warning:can&#39;t find referenced class问题的解决方式

    Warning: can't find superclass or interface Warning: can't find referenced class 这两个问题的解决方法: 1.要把你项目 ...

  6. Android内存优化-内存泄漏的几个场景以及解决方式

    转自:http://blog.csdn.net/a910626/article/details/50849760 一.什么是内存泄漏 在Java程序中,如果一个对象没有利用价值了,正常情况下gc是会对 ...

  7. 【厚积薄发】Crunch压缩图片的AssetBundle打包

    这是第133篇UWA技术知识分享的推送.今天我们继续为大家精选了若干和开发.优化相关的问题,建议阅读时间10分钟,认真读完必有收获. UWA 问答社区:answer.uwa4d.com UWA QQ群 ...

  8. 小型Web页打包优化(下)

    之前我们推送了一篇小型Web项目打包优化文章,(链接),我们使用了一段时间, 在这过程中我们也一直在思考, 怎么能把结构做的更好.于是我们改造了一版, 把可以改进的地方和可能会出现的问题, 在这一版中 ...

  9. 记一次webpack打包优化

    未进行打包优化的痛点: 随着项目的不断扩大,引入的第三方库会越来越多,我们每次build的时候会对所有的文件进行打包,耗时必定很长,不利于日常开发. 解决思路: 第三方库我们只是引入到项目里来,一般不 ...

随机推荐

  1. 洛谷 P1270 “访问”美术馆(树形DP)

    P1270 “访问”美术馆 题目描述 经过数月的精心准备,Peer Brelstet,一个出了名的盗画者,准备开始他的下一个行动.艺术馆的结构,每条走廊要么分叉为两条走廊,要么通向一个展览室.Peer ...

  2. [using_microsoft_infopath_2010]Chapter7 从SharePoint列表和商业连通服务取数据

    本章概要: 1.SharePoint2010列表作为数据源 2.从SharePoint中集中的数据连接库维护数据中获益 3.配置使用外部的项目选择器控件和商业联通服务从外部系统增加信息到你的表单中

  3. hdu 1542 线段树之扫描线之面积并

    点击打开链接 题意:给你n个矩形,求它们的面积,反复的不反复计算 思路:用线段树的扫描线完毕.将X坐标离散化后,从下到上扫描矩形,进行各种处理,看代码凝视把 #include <stdio.h& ...

  4. SDUT 1225-编辑距离(串型dp)

    编辑距离 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描写叙述 如果字符串的基本操作仅为:删除一个字符.插入一个字符和将一个字符改动 ...

  5. Blur 算法 (Unity 5.0 Shader)

    一:简单 Blur 算法 一个像素的颜色值由其邻近的若干像素和自己的颜色值的平均值重新定义,以此达到模糊的效果. 如下图,红色的像素点的值将由它和它周围的24个像素的平均值重新定义.计算的范围一般由一 ...

  6. redis 五大数据类型的常用指令

    STRING 192.168.1.66:6379> get k1 "v1" 192.168.1.66:6379> append k1 12345 (integer) 7 ...

  7. java中的NIO

    使用传统的输入输出流,当读取输入流中的数据如果没有没有读到有效的数据时,程序将在此处阻塞该线程的执行(使用InputStream的read方法从流中读取数据时,如果数据源中没有数据,它也会阻塞该线程) ...

  8. 3.linux(ubuntu)常用服务器搭建

    1 ftp 1.1 ftp服务器 1.安装vsftpd服务器 sudo apt-get install vsftpd 2.配置vsftpd.conf文件 sudo vi /etc/vsftpd.con ...

  9. div position:fixed后,水平居中的问题

    .div{position:fixed;margin:auto;left:0; right:0; top:0; bottom:0;width:200px; height:150px;}

  10. canvas实现刮刮卡效果

    canvas实现刮刮卡效果 实现步骤: 设置页面背景图,即刮刮卡底部图片 绘制canvas 刮刮卡顶部图片drawImage 绑定事件 addEventListener  touchstart.tou ...