UGUI—Canvas下的三種渲染模式以及各自的應用場景

當咱們建立一個UI元素時,若是場景中沒有Canvas,那麼Unity會自動給咱們同時建立一個Canvas,而且將新的UI元素至於其下。markdown

在Canvas下有三種渲染模式,分別是:Screen Space-Overlay、Screen Space-Camera、World Space。app

下面來詳細介紹一下這三種渲染模式。ui

第一種:Screeb Space-Overlay(屏幕空間,覆蓋模式)

做用:

     該模式下的畫布會填滿整個屏幕空間,並將畫布下面的全部UI元素置於屏幕最上方,此模式下畫布會直接縮放來適應屏幕,而後直接渲染而不參考場景或者相機(即便場景中根本沒有相機也會渲染UI),若是屏幕的大小或者分辨率發生改變,畫布將自動改變大小來自適應。url

應用場景:

使用於簡單的UI元素的顯示。spa

注意事項:

  • 該模式下的3D物體沒法被Main Camera照射到,因此沒法看到。
  • 該模式下不須要攝像機也能夠看到畫布上的2D組件。

參數詳解:

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

  • Pixel Perfect:(僅限屏幕空間擁有)

       做用:決定UI元素是否有抗鋸齒效果,勾選後的效果即便UI元素邊緣清晰不模糊。code

  • Sort Layer:(僅限此模式擁有)

       做用:用於設置畫布的深度。例如兩個Canvas,sort order更大的越後渲染,UI元素也就越在其餘Canvas下元素的前面。orm

第二種:Screen Space-Camera(屏幕空間,攝影機模式)

做用:

  • 與Screen Space-Overlay相相似,畫布放在指定攝像機的特定位置處。
  • UI元素是由攝像機來渲染的,UI外觀與攝像機的設置有關。若是攝像機設置爲了正交視圖,那麼UI元素將會展現爲透視圖,透視失真量是由攝像機的視野來控制。
  • 若是屏幕的大小、分辨率或者是攝像機視錐體發生改變,畫布也會自適應。場景中比UI平面更靠近攝像機的全部3D對象都將在UI前面渲染,而平面後的對象將被遮擋。

應用場景:

這種模式能夠用來實如今UI上顯示3D模型的需求,好比左側顯示裝備界面,右側顯示人物。cdn

參數詳解:

  • Render Camera

       設置渲染攝像機(把須要渲染的攝像機拖到這裏對象

  • Plane Distance

       設置畫布與攝像機的距離

     注意:

1. 一旦這個距離設定,相機和畫布的相對距離永遠不會改變,若是拖動攝像機,那麼畫布也會跟着移動。
2. 更改這個距離的大小,能夠控制3D物體和2D物體出如今畫布(屏幕)的先後
複製代碼
  • Sorting Layer

UGUI專用設置,能夠用來指定畫布的深度。例如兩個Canvas,Sorting Layer更大的越後渲染,UI元素也就 越在其餘Canvas下元素的前面。

  • Order in Layer

Order in Layer是Sort Layer的細分,當Sort Layer相同時,Order in Layer越大的越後渲染。

第三種:World-Space(世界空間模式)

做用:

畫布的行爲與場景中其餘對象同樣,相似於一張面片(Plane),而且能夠在經過RectTransorm手動設置畫布大小和位置及其旋轉角度(前面兩種模式不能夠),其UI元素是根據其3D位置所在的場景中其餘對象前面或者後面渲染。適應於要稱爲世界一部分的UI。這種界面也稱之爲」敘事界面」。

應用場景:

這種模式能夠用來實現跟隨任務移動的血條或者名稱。

參數詳解:

  • Event Camera

用來指定接收事件的攝像機,能夠經過畫布上的GraphicRaycaster組件發射射線產生的事件。

  • Sorting Layer

UGUI專用設置,能夠用來指定畫布的深度。例如兩個Canvas,Sorting Layer更大的越後渲染,UI元素也就 越在其餘Canvas下元素的前面。

  • Order in Layer

Order in Layer是Sort Layer的細分,當Sort Layer相同時,Order in Layer越大的越後渲染。

三種渲染模式的區別:

相關文章
相關標籤/搜索