Unity Android 5.6版本Resources.Load效率的问题

小说:打牌神器手机版下载作者:石帝海顺更新时间:2019-02-21字数:14738

侍卫左右分开,严进迈步进入,东西镇抚紧随其后,那人叹口气,这种东西没法比,谁让人家有本事。

3099游戏网站是多少

短短片刻就让谈话的气氛变得活跃无比,不知道的人只是感受到这一份气氛都会以为在场的双方不是在谈判,交涉,而是重逢的朋友在叙旧。
“这个地方还真是不错啊,居然有温泉,还真是挑了一个好地方。”雷欧奈打了几盆温泉水上来擦了擦俏脸说道。

想想看女娲现在不过是准圣中期而已,在不久之后确实连续跳到准圣后期,大圆满然后证道成圣,这样的速度快得超乎想象,就算是当年鸿钧都没她快吧。

Unity Android 5.6版本Resources.Load效率的问题


0x00 前言

相信不少使用Unity的小伙伴都听说过,甚至也亲身经历过在Unity5.6最初的几个版本中使用Resources.Load方法加载资源变~~慢的问题。
这个问题的确是存在的,比如这个issue中提到的:
android-performance-regression-when-loading-a-prefab-with-a-lot-of-child-objects-using-resources-dot-load

所以为了验证问题并思考是否有解决方案,我也实现了类似这个issue中提到的测试场景,并且分别在Unity5.6.1f1版本和Unity5.6.4p1版本上进行了测试对比,至于为何选择这2个版本下文再说。

屏幕快照 2018-02-04 上午9.58.33.png

这个场景比较简单,主要是在Resources文件夹下创建了一个有很多(650+)子节点的prefab,并且在运行时通过点击按钮调用Resources.Load进行资源加载。

而我的测试设备则是几年前的MI Note Pro。

0x01 测试

测试场景和测试设备都准备就绪了,接下来我们就直接在Unity5.6.1f1上进行安卓包的构建吧,同时直接连上profiler进行数据抓取。
屏幕快照 2018-02-04 上午8.53.10.png
不过这一测不要紧,果然可以发现这个版本的Unity在调用Resources.Load加载资源的效率很低。大概要耗时1700ms!

等等,冷静一下,回想一下既然是加载Resources文件夹内的资源,那么Resources文件夹有什么特点吗?对,它会随工程一同打包。也就是说在打包的过程中它会经过aapt这个工具的处理啊。那么aapt是什么呢?看它的全称——Android Asset Packaging Tool,安卓资源打包工具啊。那么能否通过修改aapt的参数来改善加载Resources文件夹内的资源效率的问题呢?

想到这里,吓得我立马导出了一个gradle工程。
打开build.gradle文件查看一下,嗯这里没有设置aapt的相关参数。
屏幕快照 2018-02-04 上午10.18.42.png

所以我来手动加上对aapt的设置吧:

aaptOptions {
    noCompress ".unity3d", ".ress", ".resource", ".obb"
}

ok,这次我们通过Android Studio来导出一个安卓包。并且连上设备进行测试。
no_compress.png

结果让人稍感欣慰,耗时已经从之前的1700ms来到了300ms。

所以,修改aapt的压缩策略对Resources文件夹内的资源是有效果。

好了,我们接下来使用另一个Unity版本——5.6.4p1来进行测试。
这次不导出gradle工程,直接使用Unity来打包。

屏幕快照 2018-02-04 上午8.59.15.png

wow~测试的结果亮瞎双眼。竟然只需要50ms!(考虑到我的测试场景很凶残,设备很简陋,从1700+ms来到50ms还是很大的跃升吧)。

这是为什么呢?

答案很简单,因为我们fix了这个问题啊。而这也是我选择这个版本进行测试的原因啊。
屏幕快照 2018-02-04 上午10.26.16.png

所以,如果还在对江湖传闻中5.6版本的Resources.Load效率变态的低感到恐惧的话,就赶快升级Unity版本吧。当然,作为最佳实践之一,尽量减少使用Resources也是不错的选择。

-EOF-
最后打个广告,欢迎支持我的书《Unity 3D脚本编程》

欢迎大家关注我的公众号慕容的游戏编程:chenjd01

当前文章:http://www.0477auto.com/list_33934.html

发布时间:2019-02-21 00:31:46

669游戏下载 畅游岛官网下载 大满贯游戏值得信赖! 范特西 俄罗斯方块2019安卓版 牌友棋牌作弊器是真的吗 百度手机游戏天津麻将 斗地主老是输的说说

编辑:陵陵陵

我要说两句: (0人参与)

发布