优化前: UGUI DrawCall调用256次
优化原则:
优化思路:
3. 对现有的图集进行微调
4. 处理图文混排 打断合批的问题,微调节点的父子关系和节点的顺序
不足之处:
5. 优化先,节点的父子关系更加符合人的逻辑,需求变化时,更加容易
6. 优化后,更加符合unity的渲染规范,如果产品要大改界面就比较麻烦
7. 因此,推荐在后期,项目很少改的适合,再优化,过早的优化可能会得不偿失
优化记录:
8. 图片和文字 混排会打断合批,重新调整顺序
9. 不同字体的Text,也会打断合批
10. 仅仅用于点击,不推荐使用 Image
//只做点击使用,无渲染效果的Image
public class NoDrawImage : Graphic
{
///
/// A utility class that can aid in the generation of meshes for the UI.
///
/// VertexHelper
protected override void OnPopulateMesh(VertexHelper vh)
{
vh.Clear();
}
#if UNITY_EDITOR
[CustomEditor(typeof(NoDrawImage))]
public class GraphicCastEditor : Editor
{
// Nothing show to Inspector
public override void OnInspectorGUI() { }
}
#endif
}
滚动的 ScrollRect ,挂了Mask,每生成一个Item,至少会增加一次DrawCall, 如果Item内有图文混排,至少会增加2个Item
处理了一下,DrawCall 从 256 下降到了 91,
下班都10分钟了,今天就先到这里了,剩下的抽空了再搞