天天看點

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(有風險請慎用)