【Unity3d游戲開發】淺談UGUI中的Canvas以及三種畫布渲染模式


一、Canvas簡介

  Canvas畫布是承載所有UI元素的區域。Canvas實際上是一個游戲對象上綁定了Canvas組件。所有的UI元素都必須是Canvas的自對象。如果場景中沒有畫布,那么我們創建任何一個UI元素,都會自動創建畫布,並且將新元素置於其下。

二、Canvas畫布參數與應用

1.創建畫布

  當你創建任何一個UI元素的時候,都會自動創建畫布。也可以主動創建一張畫布:點擊GameObject->UI->Canvas即可在Hierarchy面板創建一張畫布。

2.畫布參數

  下面介紹一下Canvas畫布的參數:

  第一個參數RenderMode的渲染模式有三種:Screen Space-Overlay、Screen Space-Camera以及World Space。

  1.Screen Space-Overlay模式

  Screen Space-Overlay(屏幕控件-覆蓋模式)的畫布會填滿整個屏幕空間,並將畫布下面的所有的UI元素置於屏幕的最上層,或者說畫布的畫面永遠“覆蓋”其他普通的3D畫面,如果屏幕尺寸被改變,畫布將自動改變尺寸來匹配屏幕,如下圖效果:

                                                                     

                              (在此模式下,雖然在Canvas前放置了3D人物,但是在Game窗口中並不能觀察到3D人物)

  Screen Space-Overlay模式的畫布有Pixel Perfect和Sort Layer兩個參數:

  (1)Pixel Perfect:只有RenderMode為Screen類型時才有的選項。使UI元素像素對應,效果就是邊緣清晰不模糊。

  (2)Sort Layer: Sort Layer是UGUI專用的設置,用來指示畫布的深度。

  2.Screen Space-Camera模式

  Screen Space-Camera(屏幕空間-攝影機模式)和Screen Space-Overlay模式類似,畫布也是填滿整個屏幕空間,如果屏幕尺寸改變,畫布也會自動改變尺寸來匹配屏幕。所不同的是,在該模式下,畫布會被放置到攝影機前方。在這種渲染模式下,畫布看起來 繪制在一個與攝影機固定距離的平面上。所有的UI元素都由該攝影機渲染,因此攝影機的設置會影響到UI畫面。在此模式下,UI元素是由perspective也就是視角設定的,視角廣度由Filed of View設置。

  這種模式可以用來實現在UI上顯示3D模型的需求,比如很多MMO游戲中的查看人物裝備的界面,可能屏幕的左側有一個運動的3D人物,左側是一些UI元素。通過設置Screen Space-Camera模式就可以實現上述的需求,效果如下圖所示:

                                                                                       

  它比Screen Space-Overlay模式的畫布多了下面幾個參數:

  (1)Render Camera:渲染攝像機

  (2)Plane Distance:畫布距離攝像機的距離

  (3)Sorting Layer: Sorting Layer是UGUI專用的設置,用來指示畫布的深度。可以通過點擊該欄的選項,在下拉菜單中點擊“Add Sorting Layer”按鈕進入標簽和層的設置界面,或者點擊導航菜單->edit->Project Settings->Tags and Layers進入該頁面。

    可以點擊“+”添加Layer,或者點擊“-”刪除Layer。畫布所使用的Sorting Layer越排在下面,顯示的優先級也就越高。

  (4)Order in Layer:在相同的Sort Layer下的畫布顯示先后順序。數字越高,顯示的優先級也就越高。

  3.World Space

  World Space即世界控件模式。在此模式下,畫布被視為與場景中其他普通游戲對象性質相同的類似於一張面片(Plane)的游戲物體。畫布的尺寸可以通過RectTransform設置,所有的UI元素可能位於普通3D物體的前面或者后面顯示。當UI為場景的一部分時,   可以使用這個模式。

  它有一個單獨的參數Event Camera,用來指定接受事件的攝像機,可以通過畫布上的GraphicRaycaster組件發射射線產生事件。

  這種模式可以用來實現跟隨人物移動的血條或者名稱,如下圖所示:

                                                                           

  我們通過下面的表格可以對比一下三種渲染模式的區別:

渲染模式 畫布對應屏幕 攝像機 像素對應 適合類型
Screen Space-Overlay 不需要 可選 2D UI
Screen Space-Camera 需要 可選 2D UI
World Space 需要 不可選 3D UI

 

 

作者:馬三小伙兒
出處:http://www.cnblogs.com/msxh/p/6337338.html 
請尊重別人的勞動成果,讓分享成為一種美德,歡迎轉載。另外,文章在表述和代碼方面如有不妥之處,歡迎批評指正。留下你的腳印,歡迎評論!


免責聲明!

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



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