天天看點

unity3D之canvas屬性的介紹

Canvas屬于Unity的UGUI,UGUI提供了強大的可視化編輯,大大提高了GUI的開發效率。

Canvas是所有UI元件的父物體,也就是說每一個UI元件都必須在Canvas下,作為Canvas的子物體,當你建立一個UI控件時,如果在Hierarchy下沒有Canvas元件的話,Unity會幫你自動建立一個Canvas,并将你的UI控件置于Canvas下,Unity也會自動建立EventSystem,這個對象用來确定諸如滑鼠輸入的事件,這對 UI 元件來說也至關重要,比如按鈕。

unity3D之canvas屬性的介紹

Canvas

unity3D之canvas屬性的介紹

Render Mode:Canvas的渲染方式,包括以下三種:

unity3D之canvas屬性的介紹
unity3D之canvas屬性的介紹
unity3D之canvas屬性的介紹
  1. Screen Space - Overlay  ----  這種渲染模式表示 Canvas 下的所有的 UI 控件永遠位于螢幕的前面 , 不管有沒有相機 , UI元素永遠在螢幕最前面 ,主要是2D效果。
  2.  Screen Space - Camera  -----  這種渲染模式 Canvas 和 錄影機之間有一定的距離 , 可以在錄影機和 Canvas 之間播放一些粒子特效,主要是3D效果。
  3.  World Space  ----  這種模式下 Canvas 就和普通的 3D 物體一樣了 , 可以控制它的大小,旋轉,縮放等 , 一般用來做血條。

Pixel Perfect:勾選"Pixel Perfect",在Canvas中的模糊效果消失,變得相對清晰。

Sort Order:"Sort Order"的值用來決定不同的Canvas的層級效果。指這個畫布所在的排序圖層,先對圖層進行排序,然後對每個圖層的某個元素進行Order in Layer的排序。

Canvas Scaler(Script)

Canvas Scaler元件用于設定處于不同元件下Canvas畫布中的元素的縮放模式。

unity3D之canvas屬性的介紹

UI Scaler Mode : 設定UI的縮放模式:

unity3D之canvas屬性的介紹
  • Constant Pixel Size : 無論處于什麼分辨率下Canvas下的UI控件都保持原來的大小。
  • Scale With Screen Size :在目前模式下,Canvas畫布下的UI控件會随着不同的分辨率而進行一定的縮放,以達到合理的大小。 在這種模式下有一個選項: Reference Resolution :設定目前視窗的分辨率,通常設定自己需要運作遊戲的分辨率。Match : 設定縮放的方向比例,當值為零的時候則隻在寬度改變是進行縮放,當為1時則隻在改變高度的時候進行縮放。

Reference Pixels Per Unit:每個sprite設定中,都有一個設定是機關轉換的,sprite的像素表現到unity編輯器中,一般預設是100:1,也就是100像素等于1 unit,是以如果直接在sprite中調節100變到10,則圖檔變大十倍。

Graphic Raycaster(Script)

  主要用于UI上的射線檢測。

unity3D之canvas屬性的介紹

 Ignore Reversed Graphics :是否忽略反方向的UI圖形,比如當一張圖檔反轉到180+度後,它還需不需要進行射線檢測。

 Blocking Objects :可以阻擋射線的物體,有 None , Two D , Three D , All 可選。

 Blocking Mask:可以阻擋射線的元素 (這裡是我猜的 - -),有 Nothing , Everything , Default , Water 等可選。

繼續閱讀