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 优化的更多相关文章

  1. Unity - NGUI - 优化ScrollView的一些心的

    ScrollView是NGUI非常好用的一个内置组件,但是效率不好,当子物体过多的时候,一旦开始拖动就帧数狂掉,我目前有3个解决思路: 1. NGUI自带的Example 8 - Scroll Vie ...

  2. NGUI优化之Drawcall

    今天在运行之前的程序时,无意中发现一个简单的menu菜单页面drawcall居然达到接近30了,这个数值感觉太高了. 后网上查询关于降低drawcall的方法,发现主要有以下几点: 1.少用Panel ...

  3. NGUI List优化

    腾讯是如何做 Unity 手游性能优化的 https://juejin.im/entry/5774af485bbb50005925a3b1 Unity - NGUI - 优化ScrollView的一些 ...

  4. Unity3d 要点板书

    WWW.unity3d.com.cn Unity Project  unity的项目文件/专案 Scene  unity的场景文件 Scene 场景视窗 Game 预览视窗 H... 物件视窗 Pro ...

  5. Unity3d笔试题大全

    1.       [C#语言基础]请简述拆箱和装箱. 答: 装箱操作: 值类型隐式转换为object类型或由此值类型实现的任何接口类型的过程. 1.在堆中开辟内存空间. 2.将值类型的数据复制到堆中. ...

  6. UIWrapContent(NGUI长列表优化利器)

    NGUI长列表优化利器 优化原理 NGUI3.7.x以上版本 有个新组件 UIWrapContent ,当我们的列表内容很多时,可以进行优化.它不是一次生成全部的child,而是只有固定数量的chil ...

  7. NGUI Draw Calls优化(思路)

    用NGUI做界面的时候发现不注意GameObject(或者说Widget)的depth的话,单独运行界面时,Draw Calls挺高的: 网上搜了一下,大把的博客说的都是类似以下的原则: (PS:以下 ...

  8. NGUI ScrollView 循环 Item 实现性能优化

    今天来说说一直都让我在项目中头疼的其中一个问题,NGUI 的scrollView 列表性能问题,实现循环使用item减少性能上的开销. 希望能够给其他同学们使用和提供一个我个人的思路,这个写的不是太完 ...

  9. Unity3D移动端内存优化(NGUI方面)

     Unity3D引擎技术交流QQ群:[21568554] 做3d移动端内存一直是人们头疼的问题,载入的资源释放了,还有其它的须要释放.比方ngui释放,事实上主要是NGUI的Texture和Spr ...

随机推荐

  1. 笨办法学python3练习代码ex21.py

    def add(a, b): print(f"ADDING {a} + {b}") return (a + b) def subtract(a, b): #subtract :减去 ...

  2. maven个人配置

    settings.xml 文件修改一下内容 本地 <localRepository>D:\maven\repository</localRepository> 远程:修改成国内 ...

  3. JQuery插件,轻量级表单模型验证(续 二)

    好不容易,有心思,那就把没做完的JQuery轻量级表单验证做完吧 之前做到了空参数验证的,现在增加带参数的验证. 附上html <form id="ValidataForm" ...

  4. 【NOIP2015】斗地主 题解(DFS+贪心)

    题目描述 牛牛最近迷上了一种叫斗地主的扑克游戏.斗地主是一种使用黑桃.红心.梅花.方片的AAA到KKK加上大小王的共545454张牌来进行的扑克牌游戏.在斗地主中,牌的大小关 系根据牌的数码表示如下: ...

  5. 对Word2Vec的理解

    1. word embedding 在NLP领域,首先要把文字或者语言转化为计算机能处理的形式.一般来说计算机只能处理数值型的数据,所以,在NLP的开始,有一个很重要的工作,就是将文字转化为数字,把这 ...

  6. SQL语句:在两个数据库间复制表结构和数据数据库

    一.如果两个数据库在同一台服务器上 1.复制表结构和数据:SELECT * INTO DatabaseB.dbo.TableB FROM DatabaseA.dbo.TableA 2.仅仅复制表结构: ...

  7. 23、Interpreter 解释器模式

    1.Interpreter 解释器模式 解释器模式是一种使用频率相对较低但学习难度较大的设计模式,它用于描述如何使用面向对象语言构成一个简单的语言解释器.在某些情况下,为了更好地描述某一些特定类型的问 ...

  8. ArrayList继承关系分析

    目录 继承关系 Iterable Collection List AbstractCollection AbstractList RandomAccess Serializable Cloneable ...

  9. 发布新版首页“外婆新家”升级版:全新的UI,熟悉的味道

    在7月30日我们我们忐忑不安地发布了新版网站首页,发布后迎接我们的不是新颜新风貌的惊喜,而是我们最担心的残酷现实——“让我们等这么多年,等来的就是这个新的丑容颜”,在大家的批评声中我们深深地认识到我们 ...

  10. 商品描述(动画)--- jQuery

    本文章实现是基于jQuery展示商品描述的一个功能 (1)鼠标移入显示描述内容,鼠标移开内容隐藏.先来看看一个先后效果. (2)jQuery所以的文件可以自行下载,也可以在我主页找到文件,右键文件名复 ...