UI优化总结
Posted pj2933
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UI优化总结相关的知识,希望对你有一定的参考价值。
1.动静分离
canvas下元素变化时,会使整个canvas重新绘制。因此将ui经常改变和不怎么改变的部分分离,分别使用不同的canvas。
2.图集优化
不同界面的ui,可以打包成不同的图集,一些公用的资源也单独打成一个图集,减少batch。不同场景下的资源也打成不同图集,比如战斗场景和战斗外的场景,可以减少内存的开销。
3.删除已经废弃的东西
随着项目推进,可能有些不再需要的ui节点,可以删除。
4.raycast target
去掉不需要事件监测的ui的raycast。
5.图片的压缩格式
android上可以使用etc1的格式,由于不支持格式需要采用增加一张贴图,并且shader中用新贴图的一个rgb通道作为alpha值。
fragment代码:
fixed4 frag (v2f i) : SV_Target { fixed4 color = tex2D(_MainTex, i.uv); fixed4 alphaColor = tex2D(_AlphaTex, i.uv); return fixed4(color.rgb,alphaColor.r); }
6.减少重叠
不同图集的ui元素重叠会导致drawcall的增加。
7.减少mask使用
mask会使mask内和外的元素分成两个batch,可以使用RectMask2D。
8.复杂的ui可以拆成多个prefab
拆成多个prefab可以避免一次加载导致卡顿。
9.减少使用Text的best fit和Canvas的pixel perfect
以上是关于UI优化总结的主要内容,如果未能解决你的问题,请参考以下文章
我们可以在活动 xml 中编写 UI 以及在片段 xm 中编写 UI 吗?
优化 C# 代码片段、ObservableCollection 和 AddRange