深度(Depth)概念


強化對深度的理解

  在老版本的NGUI中,UI的顯示層次關系是依靠z軸進行的。在新版本的NGUI中,所有UI的z軸都被統一,然后用深度來決定和管理顯示的層次關系。關於深度,要記住一下關鍵點:

  1.每一個UI Panel和每一個UI控件都一定會有一個Depth,深度值大代表顯示的優先級高(會越趨向於在界面上層顯示)。

  2.Depth決定的是UI的顯示層級關系,一個UI控件是否顯示在最上層是由它所屬的Panel的Depth和它本身的Depth決定的。一般情況下,屬於低Depth的Panel的控件,不管這個控件本身的Depth為多少,它都將顯示在高Depth的Panel的控件后面(被高Depth的Panel遮住)。

  3.盡量不要讓Panel之間共享同一個Depth,這樣會導致性能消耗增加。

  4.制作Panel和UI控件時,需要考慮它所屬的panel和它自身的Depth是否能讓它顯示在正確的層次關系上。

 

小心相機的深度

  在場景中的每一個Camera也有一個渲染深度。

  NGUI創建時,都會創建一個它獨有的相機。這個相機其實就是Unity中普通的Camera,然后為其附加了一個UI Camera的組件。需要注意的是,所有的Camera也都有一個Depth,這個Depth會影響到UI中的Depth,特別是場景有多個Camera來渲染不同層次的UI時,這個影響會比較大。需遵循以下規律:

  1.相機的Depth永遠是最高級的,也就是高Depth相機所看到的畫面,永遠在低Depth相機所看到的畫面之上。

  2.如果需要相機有視覺穿透效果(只渲染所看到的東西,其他地方透掉顯示其他相機所看到的畫面),需要將相機的ClearFlags設置為DepthOnly。

  3.並不是只有負責渲染NGUI的相機的Depth會有影響,所有的相機(比如默認存在的渲染場景的Main Camera)的Dpth都受此規律影響。

  4.創建UI時,UI Root下生成的相機默認Depth是比場景中的相機深度高的,不過當場景內有多個攝像機時,一定要管理好每個攝像機的CleraFlags和Depth。

  5.當場景內有多個攝像機時,一定要檢查攝像機的CullingMask不要渲染重復的Layer,否則可能導致顯示雙重畫面。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM