Unity3D:NGUI 深入剖析NGUI的遊戲UI架構
阿新 • • 發佈:2019-01-29
轉自:http://www.manew.com/blog-97-238.html
unity3d-NGUI分析,使用NGUI做UI需要注意的幾個要點在此我想羅列一下,對我在U3D上做UI的一些總結,最後解剖一下NGUI的原始碼,它是如果架構和運作的。 在此前我介紹了自己專案的架構方式,所以在NGUI的利用上也是同樣的做法,UI邏輯的程式不被繫結在物體上。那麼如何做到GUI輸入訊息的傳遞呢,答案是:我封裝了一個關於NGUI輸入訊息的類,由於NGUI的輸入訊息傳遞方式是U3D中的SendMessage方式,所以在每個需要接入輸入的物體上動態的繫結該封裝指令碼。在這個訊息封裝類中,加入訊息傳遞的委託方法後,所有關於該物體的輸入訊息將通過封裝類直接傳遞到方法上,再通過訊息型別的識別就可以脫離傳統指令碼繫結的束縛了。原始碼地址:GUIComponentEvent 在用NGUI製作UI時需要注意的幾點: 1.每個GUI以1各UIPanel為標準,過多的UIPanel首先會導致DrawCall的增多,其次是導致UI邏輯的混亂。 2.UITexture不能使用的過於平凡,因為每個UITexture都會增加1各DrawCall,所以一般會作為背景圖出現在UI上,小背景,大背景都可以。 3.圖集不宜過大,過大的圖集,不要把很多個GUI都放在一個圖集裡,在UI顯示時載入資源IO速度會非常慢。我嘗試了各種方式來管理圖集,例如每個GUI一個圖集,大雨300*100寬度的圖不做圖集,抑或一個系統模組2個圖集,甚至我有嘗試過以整個遊戲為單位劃分公共圖集,按鈕圖集,頭像圖集,