unity UGUI text font size对性能影响较大
2015-09-20 15:52
639 查看
Font Size对ugui text的性能影响非常大。
《Cube Duck Run》在itouch5上测试是很流畅的,但是在iphone5上测试,在game over后显示历史最高分时却总会卡好几秒,导致游戏体验极差。使用屏蔽法查了两天终于找到了问题的原因,原来显示历史最高分的text的font size设成了150。其实本来font size为50就够了,但是由于text的父节点上有个0.3倍的缩放,所以导致text的font size设成150其大小在屏幕上看起来才会适,当初编辑界面的时候只顾“看上去对”了,而没有意识到这样做带来的性能灾害。于是把父节点的scale由0.3改为1,再将text的font size改为50,再测试就不卡了。
----补充:
以上事故便引出一个原则:如果ui树上的一个节点不是非终端节点,一定要保证它的scale值>=(1,1,1)
假设不遵守上面原则,哪点一不小心在一个scale<(1,1,1)的节点或其子孙节点上加上个text子节点,导致程序卡成狗并且又想不到是什么原因造成的,就悲剧了。
有些时候为了移动设备上的性能,可能需要故意用一个较小的font size再加上缩放来达到想要的文字大小,虽然这样会导致文字发虚,但也是必要的取舍。
《Cube Duck Run》在itouch5上测试是很流畅的,但是在iphone5上测试,在game over后显示历史最高分时却总会卡好几秒,导致游戏体验极差。使用屏蔽法查了两天终于找到了问题的原因,原来显示历史最高分的text的font size设成了150。其实本来font size为50就够了,但是由于text的父节点上有个0.3倍的缩放,所以导致text的font size设成150其大小在屏幕上看起来才会适,当初编辑界面的时候只顾“看上去对”了,而没有意识到这样做带来的性能灾害。于是把父节点的scale由0.3改为1,再将text的font size改为50,再测试就不卡了。
----补充:
以上事故便引出一个原则:如果ui树上的一个节点不是非终端节点,一定要保证它的scale值>=(1,1,1)
假设不遵守上面原则,哪点一不小心在一个scale<(1,1,1)的节点或其子孙节点上加上个text子节点,导致程序卡成狗并且又想不到是什么原因造成的,就悲剧了。
有些时候为了移动设备上的性能,可能需要故意用一个较小的font size再加上缩放来达到想要的文字大小,虽然这样会导致文字发虚,但也是必要的取舍。
相关文章推荐
- unity3d实现动态显示伤害值
- Unity UGUI鼠标穿透UI问题(Unity官方的解决方法)
- Unity3D游戏开发Mecanim动画系统讲解
- Unity3D:内存优化
- Unity3D:Texture图片空间和内存占用分析
- Unity3D:图形渲染优化、渲染管线优化、图形性能优化
- Unity5打包Assetbundle 出错 `System.IO.File' does not contain a definition for `ReadAllBytes'
- [Android交互]Android与Unity的交互
- Unity热更新专题(八)uLua示例Demo简析及SimpleFramework工作流程
- unity3d动画系统(5.0以上版本,资源在51kaifa.com中下载)
- Unity3D之文件读写
- Unity3d NGUI伪自适应
- 【Unity3d】UGUI 之 Animator, Animation 动画系统学习笔记
- 改变unity场景的图片比例保存到xml当中
- Unity3d该物业(Attributes)整理
- Unity UGUI 学习(一)——关于Canvas
- Unity3D中uGUI事件系统简述及使用方法总结
- Unity手游优化总概
- unity 自带脚本smoothfollow的修改,实现不同方向的跟随
- Unity3d 人物白膜问题