Unity UI模块优化(3.优化更新开销)

参考链接:https://blog.uwa4d.com/archives/1875.html,详情请点击链接查看UWA的视频解析,尊重UWA版权。本文为个人看视频学习整理笔记,同视频有删减。

降低界面的更新开销

1.动静分离
https://blog.uwa4d.com/archives/video_UI.html

NGUI:细分UIPanel(动态元素和静态元素分离Panel,原理可见前文)

UGUI:细分Canvas


2.降低更新频率

Unity UI模块优化(3.优化更新开销)_第1张图片
案例:小地图
- 设定移动阈值(如怪物移动很小一点位置后,小地图上看不到变化,那可以设置移动阈值,一旦高于多少之后再设置位置,这可以一定概率上降低小地图更新频率)
- 设定更新频率(手动设置更新频率,小地图玩家不会一直看,所以可以30帧或者1秒钟更新一次,可降低消耗)


3.避免“敏感”操作

NGUI:
元素隐藏显示 -> FillAllDrawCalls

FillAllDrawCalls常见原因:

  • 添加/删除元素时,穿插了其他的UIDrawCall
  • 添加/删除的元素自成一个UIDrawCall

避免分式:

  • 尝试让插入的元素能够合入现有的UIDrawCall
  • 通过scale = 0或者alaph接近0来“隐藏”

UGUI:
元素的Position赋值->Canvas.BuildBatch

Unity UI模块优化(3.优化更新开销)_第2张图片


4.优化选项

NGUI:

  • Static(优化移动UIPanel时:UIPanel组件上的Static,当Panel下元素肯定不会变时勾上它,则移动Panel时,不会轮询消耗)Unity UI模块优化(3.优化更新开销)_第3张图片
  • Visible(优化大量更新网格时)
    Unity UI模块优化(3.优化更新开销)_第4张图片

你可能感兴趣的:(游戏优化)