学习资料

来自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界面资源

最新文章

  1. Xcode 创建.a和framework静态库(转载)
  2. windows 2003自动登录的具体步骤
  3. oracle远程连接配置
  4. Oracle触发器实例(网搜)
  5. paas-openshift
  6. [记录] nicescroll 在bootstrap tabs中工作
  7. c++ bitset类的使用和简介
  8. Swift String length property
  9. 最小二乘法拟合非线性函数及其Matlab/Excel 实现(转)
  10. 网页解析的全过程(输入url到展示页面)
  11. js去重
  12. 18. 4Sum(中等)
  13. 2019.04.23 Scrapy框架
  14. ELMO模型(Deep contextualized word representation)
  15. 向cmd中添加字体的方法
  16. Linux下的python3,virtualenv,Mysql、nginx、redis安装配置
  17. idea的起步配置
  18. Javascript 对象继承 原型链继承 对象冒充 call 混合方式
  19. VC消息传递(对话框间传递参数)
  20. cdoj203-Islands 【并查集】

热门文章

  1. 微信小程序跳转函数总结
  2. awk简单应用
  3. elasticsearch 分片的创建 集群重启分片运作
  4. DDD框架基础知识
  5. 适合 ASP.NET Core 的超级-DRY开发
  6. 修改Centos7用户默认家目录
  7. [WeChat-Bot-Go] 记录帖
  8. Java核心技术-读书笔记
  9. (一)将mockjs集成到VUE中后,怎样根据接口入参返回mock结果
  10. 『线段树及扫描线算法 Atlantis』