学习资料

来自UWA的分享,针对于Unity 4.x 及5.3 以下版本,Unity5.5及更高版本可能适用。

文章:UWA技术直播视频集锦 UGUI &NGUI http://blog.uwa4d.com/archives/video_UI.html

视频:UWA直播回顾| UGUI性能优化技巧 https://v.qq.com/x/page/r0329jx2ijw.html

其它:https://zhuanlan.zhihu.com/p/24265362

NGUI

1. (动静分离)动态的UI:添加在UIPanel下,减少每次重建时的消耗,把UIPanel下的内容做的尽量简单

2. 不要让depth 穿插在两个DrawCall之间

CPU的消耗时间(ms),查看峰值 ,重点关注在战斗场景中,假如在主城或者切换场景时,UI的部分峰值卡是可以接受的,但如果在战斗场景中UI模块消耗大量的CPU就不应该,应该一帧一帧地排查。

Font(FontCache),动态字体,尽量做成静态字体。

UICamera.CreateVBO

UGUI

布局

父级绑定的

1. ContentSizeFilter

2. Horizontal Layout Group

Grid上绑定的

LayoutElement 中的Preferred Width

UGUI优化的几个方面

  1. DrawCall
  2. OverDraw
  3. 事件检测
  4. 网格重建

DrawCall

渲染顺序:根据Hierarchy中的顺序来渲染,越往下越在前

合并规则:

Mask 尽量减少

重叠会产生DrawCall ! 尽量不要出现重叠,常见于背包,排列多的情景下 。

OverDraw

移动端的GPU消耗

如何查看? 在Scene视图中,可以选择Overdraw,如下图所示

当图片的中心是空白的,但图片却占用比较大的面积。

Image的Image Type= Sliced时,去掉 Fill Center

OverDrawTracking 脚本

Unity 5.X的OverDraw优化

UGUI 降低填充率技巧两则  http://blog.uwa4d.com/archives/fillrate.html

事件检测

不需要事件检测的UI,可以去掉 (Raycast Target) ,比如非Button类的Image和Label

EventSystem.Update

网格重建

动态元素放在另外的Canvas下,减少rebuild

对CPU的耗时

Camera.Render

Graphics.PresentAndSync

Animator.Update

Canvas.BuildBatch (合并的Mesh需要改变时所产生的调用,全部UI都在一个Canvas,应该分离)

Canvas.SendWillRenderCanvas(UI元素自身发生变化所产生的调用)

其它

查看UI的顶点数

Profiler - Memory  - Not Save - Mesh - BuildBatch

Canvas 中的Pixel Perfect 关闭

资源

Frozen UI for UGUI  https://www.assetstore.unity3d.com/en/#!/content/39582

一套UI组件库,包含较多现成的UI界面资源

UGUI和NGUI的优化分享的更多相关文章

  1. 【转】UGUI VS NGUI

    原文:http://gad.qq.com/college/articledetail/7191053 注[1]:该比较是基于15年-16年期间使用NGUI(3.8.0版本)与UGUI(4.6.9版本) ...

  2. NGUI List优化

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

  3. uGUI VS NGUI

    前言 这篇日志的比较是根据自己掌握知识所写的,请各路大神多多指教. 引擎版本: Unity 4.6 beta 两者区别 1.uGUI的Canvas 有世界坐标和屏幕坐标 2.uGUI的Button属性 ...

  4. 转:UGUI与NGUI的区别与优缺点

    1. NGUI与UGUI的区别 1) uGUI的Canvas 有世界坐标和屏幕坐标   2) uGUI的Image可以使用material     3) UGUI通过Mask来裁剪,而NGUI通过Pa ...

  5. UGUI实现NGUI的UIEventListener功能

    在unity中处理UI事件时,习惯了使用NGUI的UIEventListener,虽然UGUI也有AddListener,但是一个组件只能对应一个函数,不能在一个函数中同时处理多个事件,显得有些麻烦 ...

  6. Unity+NGUI性能优化方法总结

    1 资源分离打包与加载 游戏中会有很多地方使用同一份资源.比如,有些界面会共用同一份字体.同一张图集,有些场景会共用同一张贴图,有些会怪物使用同一个Animator,等等.可以在制作游戏安装包时将这些 ...

  7. hive优化分享

    粘贴一下我在部门中的一次hive优化的分享. 简述 hive构建在hadoop基础上,利用分布式存储,通过mr引擎实现对大数据的计算.MR会频繁地读写磁盘而且MR任务的启动成本很高.对于hive优化显 ...

  8. OO电梯系列优化分享

    目录 前言 HW5 HW6 第二次作业uml协作图 HW7 第三次作业uml协作图 前言 本单元作业在优化方面确实有一些想法值得分享,故单开一篇博客分享一下三次作业的优化以及架构. 三次作业的共同之处 ...

  9. MYSQL性能优化分享(分库分表)

    1.分库分表 很明显,一个主表(也就是很重要的表,例如用户表)无限制的增长势必严重影响性能,分库与分表是一个很不错的解决途径,也就是性能优化途径,现在的案例是我们有一个1000多万条记录的用户表mem ...

随机推荐

  1. 【BigData】Java基础_方法的定义与使用

    1.概念 Java语言中的“方法”(Method)在其他语言当中也可能被称为“函数”(Function).对于一些复杂的代码逻辑,如果希望重复使用这些代码,并且做到“随时任意使用”,那么就可以将这些代 ...

  2. Spring Transaction 使用入门 (转)

    Spring Transaction 使用入门 一.开篇陈述 1.1 写文缘由 最近在系统学习spring框架IoC.AOP.Transaction相关的知识点,准备写三篇随笔记录学习过程中的感悟.这 ...

  3. 阿里云 API 签名机制的 Python 实现

    在调用阿里云 API 的时候,最让人头疼的就是 API 的签名(Signature)机制,阿里云在通用文档中也有专项说明,但是仅仅有基于 Java 的实现代码示例.所以这里基于 Python 来分析下 ...

  4. [Gamma]Scrum Meeting#5

    github 本次会议项目由PM召开,时间为5月30日晚上10点30分 时长15分钟 任务表格 人员 昨日工作 下一步工作 木鬼 撰写博客,组织例会 撰写博客,组织例会 swoip 前端显示屏幕,翻译 ...

  5. Idea 设置单击打开文件或者双击打开文件、自动定位文件所在的位置

    以下定位,框架下,打开文件的点击方式,以及点击标签导航页上的已打开文件定位到展开路径,如下图:

  6. Maven 教程(3)— Maven仓库介绍与本地仓库配置

    原文地址:https://blog.csdn.net/liupeifeng3514/article/details/79537837 1.Maven本地仓库/远程仓库的基本介绍 本地仓库是指存在于我们 ...

  7. CSS3手机端字体不能小于12号的方法

    CSS3手机端字体不能小于12号的方法 <pre> .xiaoyu12fontsize{ -webkit-transform-origin: 0% 0%; -webkit-transfor ...

  8. NanoPi NEO Plus2开发环境搭建

    1.前言 NanoPi NEO Plus2是友善电子推出的一款非常小巧精致的开源硬件,该开源硬件的CPU是基于Allwinner公司的64位四核ARM Cortex-A53处理器H5,并且内置了六核M ...

  9. python入门之函数的嵌套

    目录 函数的嵌套调用 函数的嵌套定义 函数的嵌套调用 在函数内调用函数 def index(): print('from index') def func(): index() print('from ...

  10. Flink 源码解析 —— 如何获取 StreamGraph?

    StreamGraph https://t.zsxq.com/qRFIm6I 博客 1.Flink 从0到1学习 -- Apache Flink 介绍 2.Flink 从0到1学习 -- Mac 上搭 ...