您的位置:首页 > 移动开发 > Unity3D

unity游戏の优化--UI

2015-01-08 13:08 323 查看
一、UI的优化:尽可能的减少draw call
对于 UI 模块,对NGUI来讲最重要的是 UIAtlas。
要把游戏中用到png ,psd格式的图片做到最大通用。UI图集最好一个;
字体也一个图集,这样一个UI模块至少占3个dc,加一个texture。
为了层次分离清晰,使dc最大限度的合并:UILabel 深度 统一调大15/20 ,这样基本所有的font占的dc都会合并。

建议:
每一个UI制作一个Prefab,对应每一个UI功能脚本~
尽量避免用代码设置UI的位置。
UI动态显示数据之前要判断数据是否存在。
UILabel字体一般都是根据数据读来的。它的文字对其方式要设置好。否则以后文字多了对齐有问题还得调,这些最好一步到位。省的日后还要调整。
建议dc<20
一个游戏中最简单的最常见的就是UI,所以要把这做好做细。

二、Profiler性能分析器
需要时刻关注的的参数:
cpu ---GC Alloc 、Time
GC Alloc记录游戏运行时代码产生的堆内存分配,非常重要的参数,比Time更重要。所以要尽可能的减少GC的产生。
引起GC的分配有以下几种情况值得注意:
GameObject.GetCompont()----尽量缓存组件
Object.get_name() ----如果每一帧都需要比较,可以缓存名字
foreach ----每次foreach会产生一个enumerator
尽可能避免使用LINQ
协程Coroutine ----开启一个协程,至少分配373的内存
String连接 ----使用StringBuilder或String.Format来代替而不是用”+”来进行连接
另外:
StackTraceUtility.PostprocessStackTrace() StackTraceUtility.ExtractStackTrace()
Debug.Log()调试信息造成,这是一个很耗时间的操作。发布的时候尽量去掉。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: