在Unity中,每次引擎準備數據並通知GPU的過程稱爲一次Draw Call。Draw Call值越低,會獲得更好的渲染性能。工具
NGUI 查看Draw工具(NGUI-OPEN-Draw Call Tool)性能
NGUI 方面的Draw Call 優化:優化
(1) 打包圖集對象
1、每一個材質/紋理的渲染必定是會產生DrawCall的,這個DrawCall只能經過打包圖集來進行優化。blog
2、從功能角度進行劃分,例如UI能夠劃分爲公共部分,以及每一個具體的界面,功能上,顯示上密切相關的圖片打包到一塊兒 圖片
(2)渲染順序it
1、 U3D的渲染是有順序的,NGUI的渲染順序是由咱們控制的,控制好NGUI的渲染順序,你才能控制好DrawCall。打包
2、 一個DrawCall,表示U3D使用這個材質/紋理,來進行一次渲染,那麼此次渲染假設有3個對象,那麼當3個對象都使用這一個材質/紋理的時候,就會產生一次DrawCall。假設3個對象使用不一樣的材質/紋理,那麼無疑會產生3個DrawCall。渲染
例子:im
A,B使用材質1,C使用材質2,這時候會有幾個Draw Call?
有兩種狀況,3個Draw Call:
A:材質1
B:材質2
C:材質1
第二種狀況,2個DrawCall
A:材質1
C:材質1
B:材質2
渲染順序:Unity默認會按照控件的Depth來渲染。從後往前渲染,當使用相同材質的控件會合併爲一個Draw Call。若是和前一個材質不相同則會從新產生一個Draw Call。因此會有上面兩種不一樣的結果,若是同一個界面有更多的空間存在時,這個問題會更明顯。在UI製做的時候就須要特別注意這一點。