NGUI:UIPanel
UIPanel負責建立實際的集合圖形。你不需要手動的添加UIPanel-一旦你建立一個控制項,它會自動被添加。如果你想將你的UI渲染拆分到不同的Draw Call中,你可以手動建立你自己的UIPanel,例如你要建立一個分屏的遊戲,每個屏用一個攝像機進行渲染,這種秦光下你就需要2個UIPanel來避免控制項互相重疊。
參數
Panel Tool 決定這一個Panel是否會顯示在Panel Tool中。那些動態建立的臨時Panel可以將這個選項關掉,比如那些HUD血條,滾動戰鬥文字等。
Normals 標誌讓你選擇UI的幾何圖形是否會受到法線和切線的影響。如果你的UI會受光照影響,那麼這個選項需要被選上。
Depth Pass 讓你添加一個額外的之渲染深度的Draw Call。開啟這個選項可以節省部分填充率,因為在你的不透明的控制項後面的物體都不會再被渲染。
-----------------
Widgets 告訴你這個Panel渲染了多少個控制項
Draw Calls 告訴你這個Panel會消耗多少個Draw Call。這個數值越低,效率越高
Debug Info 讓你選擇顯示哪種調試資訊
Clipping 讓你選擇是否需要裁切功能。預設情況下不會有裁切。裁切是使用Shader來實現的,當選擇了任意一種不是None的裁切模式之後,NGUI會嘗試自動的擷取一個裁切版本的shader,並更新材質。
如果選擇了裁切模式,你可以選擇裁切地區的中心點和大小,單位是像素。如果不修改這些參數的預設值,那麼會按照整個螢幕的大小來裁切,這個跟沒有裁切是一樣的效果。
如果裁切模式選擇了SoftAlpha,你可以改變Softness參數,這個參數決定了被裁切內容淡出的邊緣寬度,這個在整個裁切地區的四個邊都是相等的
Material 是一個唯讀值。你可能會看到1個以上的material,每個material會消耗一個Draw Call。為了方便,每個Draw Call的面數也顯示在這裡
Tips
1. 在預設情況下,如果UIPanel不存在,它會在最根層的控制項中自動建立。因此,最好將你的UI整理到一個通用的父節點。
2. 你可以通過將UIPanel使用的texture和font整理到同一個atlas來減少UIPanel使用的material數量
3. 你可以放心的刪除那些沒有使用的或者顯示了0個widgets的UIPanel
4. 如果你刪除了一個還管理了其他widgets的UIPanel,這些widgets會消失。點擊Play或者disable掉這些widgets再enable它們,就可以重新顯示(實際上是又重新添加了一個新的UIPanel)
5. 只要沒有東西發生改變,已經建立好的幾何圖形不會重建。意思就是如果你的UI一直保持不動,那麼這些幾何圖形不會每一幀都update,他們會一直被重用,這樣提高了一些效率。