NGUI优化之Drawcall
今天在运行之前的程序时,无意中发现一个简单的menu菜单页面drawcall居然达到接近30了,这个数值感觉太高了。
后网上查询关于降低drawcall的方法,发现主要有以下几点:
1.少用Panel;
2.少用Atlas;
3.尽量避免夹层(即不同材质的UISprite相互间层级夹杂,如L2,L4使用mat1,L1,L3使用mat2,这样就形成夹层现象);
分析了一下自己的实现,发现其实主要问题都是夹层引起的,因此重新设计了以下层的分布,并在开发过程中有意识的注意这个问题,
具体实现思路如下:
1.背景、按钮等置于底层,因为彼此间可能有层级关系,因此分配了1-4这么几个层级来放置底层UISprite;
2.文字展现基本置于顶层,因此把所有UILabel的层次提高,如第5层这样的;
完成以上两个步骤以后,发现DC立马降低到2,即两个material最后形成了两个drawcall。