UGUI和NGUI的优化分享
学习资料
来自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优化的几个方面
- DrawCall
- OverDraw
- 事件检测
- 网格重建
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的优化分享的更多相关文章
- 【转】UGUI VS NGUI
原文:http://gad.qq.com/college/articledetail/7191053 注[1]:该比较是基于15年-16年期间使用NGUI(3.8.0版本)与UGUI(4.6.9版本) ...
- NGUI List优化
腾讯是如何做 Unity 手游性能优化的 https://juejin.im/entry/5774af485bbb50005925a3b1 Unity - NGUI - 优化ScrollView的一些 ...
- uGUI VS NGUI
前言 这篇日志的比较是根据自己掌握知识所写的,请各路大神多多指教. 引擎版本: Unity 4.6 beta 两者区别 1.uGUI的Canvas 有世界坐标和屏幕坐标 2.uGUI的Button属性 ...
- 转:UGUI与NGUI的区别与优缺点
1. NGUI与UGUI的区别 1) uGUI的Canvas 有世界坐标和屏幕坐标 2) uGUI的Image可以使用material 3) UGUI通过Mask来裁剪,而NGUI通过Pa ...
- UGUI实现NGUI的UIEventListener功能
在unity中处理UI事件时,习惯了使用NGUI的UIEventListener,虽然UGUI也有AddListener,但是一个组件只能对应一个函数,不能在一个函数中同时处理多个事件,显得有些麻烦 ...
- Unity+NGUI性能优化方法总结
1 资源分离打包与加载 游戏中会有很多地方使用同一份资源.比如,有些界面会共用同一份字体.同一张图集,有些场景会共用同一张贴图,有些会怪物使用同一个Animator,等等.可以在制作游戏安装包时将这些 ...
- hive优化分享
粘贴一下我在部门中的一次hive优化的分享. 简述 hive构建在hadoop基础上,利用分布式存储,通过mr引擎实现对大数据的计算.MR会频繁地读写磁盘而且MR任务的启动成本很高.对于hive优化显 ...
- OO电梯系列优化分享
目录 前言 HW5 HW6 第二次作业uml协作图 HW7 第三次作业uml协作图 前言 本单元作业在优化方面确实有一些想法值得分享,故单开一篇博客分享一下三次作业的优化以及架构. 三次作业的共同之处 ...
- MYSQL性能优化分享(分库分表)
1.分库分表 很明显,一个主表(也就是很重要的表,例如用户表)无限制的增长势必严重影响性能,分库与分表是一个很不错的解决途径,也就是性能优化途径,现在的案例是我们有一个1000多万条记录的用户表mem ...
随机推荐
- rabbitmq安装集群
centos 7.3 64 172.18.39.241 k8s-mini-241172.18.39.242 k8s-mini-242172.18.39.243 k8s-master-243 vim / ...
- 亿级Web系统搭建 Web负载均衡的几种实现方式(阿里)
我还写了两篇详细的 参考:六大Web负载均衡原理与实现 参考:LVS(Linus Virtual Server):三种IP负载均衡方式比较+另三种Web负载均衡方式 其中LVS.HAProxy可以工作 ...
- 你真的了解java的lambda吗?- java lambda用法与源码分析
你真的了解java的lambda吗?- java lambda用法与源码分析 转载请注明来源:cmlanche.com 用法 示例:最普遍的一个例子,执行一个线程 new Thread(() -> ...
- 生成Makefile文件全过程
[1]生成Makefile文件全过程 整体流程如下图: 注意:以下文件根目录为testmake(任意位置新建即可) (1)测试程序 1.1 建立两个目录:mkdir include source 1. ...
- Redis Desktop Manager 0.9.3 版本下载
因为Redis Desktop Manager作者在 0.9.4 版本之后选择对所有的安装包收费,不再提供安装包下载,但是源码依旧公开.链接:https://pan.baidu.com/s/1SXsy ...
- Java基础知识点总结(一)
1.源文件声明规则2.JAVA基本类型void3.数据类型默认值4.自动类型转换5.Java变量类型6.Java局部变量7.访问控制修饰符8.父类与子类的访问控制9.instanceof运算符 1.源 ...
- python利用dijkstra算法求解图中最短距离
利用dijkstra算法,来完成图中两个顶点间最短的距离,可以直接复制使用,只需要修改参数即可 def dijkstra_raw(edges, from_node, to_node): "& ...
- TJOI2018简要题解
Day1T1数学计算 按照时间轴建一棵线段树即可,复杂度为\(O(m \log m)\) #include <bits/stdc++.h> #define N 100005 #define ...
- 【在 Nervos CKB 上做开发】Nervos CKB 脚本编程简介[5]:调试 debug
作者:Xuejie 原文链接:https://xuejie.space/2019_10_18_introduction_to_ckb_script_programming_debugging/ Ner ...
- 开发dubbo应用程序(二)dubbo注册中心相关概述
1.注册中心概述 在Dubbo微服务体系中,注册中心是其核心组件之一.Dubbo通过注册中心实现了分布式环境中各微服务之间的注册与发现,是各分布式节点之间的纽带.其主要作用如下: 动态加入.一个服 ...