unity中NGUI制作UI界面的小建议

NGUI和UGUI的渲染方式是不同的,UI界面的拼接也是有差别的,这里就只说NGUI拼接UI界面相关的事项

一.NGUI中的drawCall统计规则:
(1)一个UITexture就是一个单独的drawCall
(2)每个Panel就是一个drawCall
(3)相邻的depth的相同图集 合成一个drawcall(如果相邻的depth使用不同的图集,drawcall不能合并,每个图集就单独计为一个drawcall)

二.NGUI中的刷新规则:
(1)首先对UiPanel,按照depth进行排序
(2)然后对每个panel下的UIWedget按照depth进行排序
(3)NGUI的渲染是在“透明度”序列中(即 Transparent,渲染顺序是从后往前渲染 )
(4)depth越小,越先渲染,depth越大越后渲染:所以在屏幕上看到的结果是depth最大的在最上面

三.如何调试和确认NGUI中drwacall存在的问题:
请参考如下网址的内容
https://zhuanlan.zhihu.com/p/66720884

四.优化建议:
(1)拆分Panel。多添加一个panel会多增加一个drawcall,但是会减少界面中mesh重建渲染线程的压力,避免整个UI界面的重建(仅仅重建此panel下的内容)。多增加一个drawcall ,减轻渲染线程的压力!!!!!!!!!!!!
(2)避免depth的打断。相邻的depth,使用相同的图集,中间不插入其他图集,保证drawcall的合并。
(3)z值的大小不会影响渲染的顺序,请留意。
(4)动静分离。不会改变的UI设置为static(有风险请慎用)

你可能感兴趣的:(unity,ngui,ui,渲染器)