NGUI 优化
1. Update
Ngui 组件继承关系是 UIWidget : UIRect : MonoBehaviour.
因此由每个组件的独自调用update变更为,由某个更新点,统一调用会效率提升。并且可以调整更新频率。
2. NGUI UIDrawcall 优化:
参考:NGUI开发技巧(上,下)
https://v.qq.com/x/page/j0336jncwn5.html
https://v.qq.com/x/page/r0342tl5e47.html
工具:NGUI->Open-> Panel Tool && UIDrawCall Tool
A. UIDrawCall 个数优化。
一个panel可以多个UIDrawcall UIDrawcall个数 = 将此panel下的widget按depth排序,材质相同的划归为一个UIDrawCall.
所以减少DrawCall个数就要尽可能的避免材质交叉,即把材质相同的widget的depth调到相邻。
优化方法:
a. 文字与图片depth规划好。
b. 调 widget.depth
B. UIDrawCall.UpdateGeometry: Set the draw call's geometry
包括某一个UIDrawCall内部三角形重建,另一种情况是此UIPanel下的所有DrawCall的重建。
第一种情况常出现在:此DrawCall内顶点数据变更(如transform位移,缩放,颜色变化)都会触发此mydrawCall.updateGeometry().
第二种情况(重建所有DrawCall)出现在 UIPanel.mRebuild = true 的情况。如
a. UIPanel.RemoveWidget (UIWidget w): w 正好是某个drawCall的边界组件。
b. 材质交叉:使用了a材质的widget.depth插入了使用b材质的某个drawcall.
c. panel.OnInit 及 OnEnable时。
优化原理:
a. 避免重建.
b. 不可避免重建时,减少重建的量。
常用方法:
a. 动静分离:加UIPanel.重建时只重建动态部分的三角形
C. UITexture不是使用的图集所以会单独占用一个DrawCall.
D. UI上的粒子特效: 不会影响UIDrawCall个数。
3. UILable: OutLine, Shadow. 效果
4. UISprite: 平铺类型
5. UIFont:
文字的材质合并不到一起,可能的原因是使用了不同的字体。
NGUI 优化的更多相关文章
- Unity - NGUI - 优化ScrollView的一些心的
ScrollView是NGUI非常好用的一个内置组件,但是效率不好,当子物体过多的时候,一旦开始拖动就帧数狂掉,我目前有3个解决思路: 1. NGUI自带的Example 8 - Scroll Vie ...
- NGUI优化之Drawcall
今天在运行之前的程序时,无意中发现一个简单的menu菜单页面drawcall居然达到接近30了,这个数值感觉太高了. 后网上查询关于降低drawcall的方法,发现主要有以下几点: 1.少用Panel ...
- NGUI List优化
腾讯是如何做 Unity 手游性能优化的 https://juejin.im/entry/5774af485bbb50005925a3b1 Unity - NGUI - 优化ScrollView的一些 ...
- Unity3d 要点板书
WWW.unity3d.com.cn Unity Project unity的项目文件/专案 Scene unity的场景文件 Scene 场景视窗 Game 预览视窗 H... 物件视窗 Pro ...
- Unity3d笔试题大全
1. [C#语言基础]请简述拆箱和装箱. 答: 装箱操作: 值类型隐式转换为object类型或由此值类型实现的任何接口类型的过程. 1.在堆中开辟内存空间. 2.将值类型的数据复制到堆中. ...
- UIWrapContent(NGUI长列表优化利器)
NGUI长列表优化利器 优化原理 NGUI3.7.x以上版本 有个新组件 UIWrapContent ,当我们的列表内容很多时,可以进行优化.它不是一次生成全部的child,而是只有固定数量的chil ...
- NGUI Draw Calls优化(思路)
用NGUI做界面的时候发现不注意GameObject(或者说Widget)的depth的话,单独运行界面时,Draw Calls挺高的: 网上搜了一下,大把的博客说的都是类似以下的原则: (PS:以下 ...
- NGUI ScrollView 循环 Item 实现性能优化
今天来说说一直都让我在项目中头疼的其中一个问题,NGUI 的scrollView 列表性能问题,实现循环使用item减少性能上的开销. 希望能够给其他同学们使用和提供一个我个人的思路,这个写的不是太完 ...
- Unity3D移动端内存优化(NGUI方面)
Unity3D引擎技术交流QQ群:[21568554] 做3d移动端内存一直是人们头疼的问题,载入的资源释放了,还有其它的须要释放.比方ngui释放,事实上主要是NGUI的Texture和Spr ...
随机推荐
- win7(64位)使用DEBUG
win7 64位好像是不能直接打开DOS进行DEUBG的,于是查找相应解决方案 开始看其他人的帖子,写得语焉不详,后来一查,居然是抄百度的.....自己不觉得low吗... 参考百度经验的回答http ...
- DIFF算法浅析(三)在react中的实现
在虚拟dom中diff的实现. 分别从4个方面: DIFF抽象概念(概述.时间复杂性分析) 在Vue2中的实现(版本2.6.11.必要性.执行方式) 在React中的实现(版本16.13.1,必要性. ...
- Java编译解释之cmd
一.编译 1. javac 类名.java (在类当前目录下) 2. javac 类的全路径 二.解释 1. java 类名(在类当前目录下) 2. java -cp 类的当前目录路径 类名
- ALGEBRA-前言
“当你读一页不到一个小时的话,可能是你读太快了” 哈哈 可以 慢慢品
- CentOS7基于ss5搭建Socks5代理服务器
简介 环境 节点名 IP 软件版本 硬件 网络 说明 falcon-binary 172.19.0.6 list 里面都有 2C4G Nat,内网 测试环境 部署 准备编译环境和依赖 #安装编译环境和 ...
- myBatis源码解析-类型转换篇(5)
前言 开始分析Type包前,说明下使用场景.数据构建语句使用PreparedStatement,需要输入的是jdbc类型,但我们一般写的是java类型.同理,数据库结果集返回的是jdbc类型,而我们需 ...
- 企业项目实战 .Net Core + Vue/Angular 分库分表日志系统 | 简单的分库分表设计
前言 项目涉及到了一些设计模式,如果你看的不是很明白,没有关系坚持下来,写完之后去思考去品,你就会有一种突拨开云雾的感觉,所以请不要在半途感觉自己看不懂选择放弃,如果我哪里写的详细,或者需要修正请联系 ...
- 一个简单的例子让你很轻松地明白JavaScript中apply、call、bind三者的用法及区别
JavaScript中apply.call.bind三者的用法及区别 引言 正文 一.apply.call.bind的共同用法 二. apply 三. call 四. bind 五.其他应用场景 六. ...
- win7蓝牙连接手机蓝牙
今天有个需求,需要win7 PC连接手机蓝牙,并发送文件到手机端.在此记录下过程. 准备: win7 电脑主机. CSR 蓝牙dongle. 手机 1. 打开蓝牙服务 方法:打开控制面板,找到“管理工 ...
- Storm与SparkStreaming对比
Storm与SparkStreaming对比 ◆ Spark Streaming 批处理的性能比Storm高出几十倍.◆ Streaming采用小批量模式,Storm是一条消息一条消息的计算.◆ St ...