zoukankan      html  css  js  c++  java
  • 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: 

        文字的材质合并不到一起,可能的原因是使用了不同的字体。       

     

  • 相关阅读:
    vue 中使用 rem 布局的两种方法
    ant design pro请求返回全局参数 ant design pro超详细入门教程
    小程序中页面跳转路由传参
    检查域名所对应的ip
    小程序数据可视化echarts 动态设置数据
    微信小程序:上拉加载更多
    微信小程序接入百度OCR(身份证识别)
    JavaScript鼠标事件,点击鼠标右键,弹出div
    java 相关文件安装
    微信小程序自定义顶部组件customHeader的示例代码 小程序中如何引用阿里图标
  • 原文地址:https://www.cnblogs.com/javalzy/p/6607988.html
Copyright © 2011-2022 走看看