Canvas畫布是承載所有UI元素的區(qū)域赦肋。Canvas實際上是一個游戲?qū)ο笊辖壎薈anvas組件爽室。所有的UI元素都必須是Canvas的自對象。如果場景中沒有畫布,那么我們創(chuàng)建任何一個UI元素住练,都會自動創(chuàng)建畫布故黑,并且將新元素置于其下遥诉。
? ? ? ? 在Hierarchy視圖點擊右鍵UI→Canvas即可創(chuàng)建畫布拢驾。
? ? ? ? ? ? ? ? Render Mode:
? ??????????????????Screen Space-Overlay:覆蓋模式碍遍。
? ??????????????????????????畫布會填滿整個屏幕空間,并將畫布下面的所有的UI元素置于屏幕的最上層阳液,或者說畫布的畫面永遠(yuǎn)“覆蓋”其他普通的3D畫面怕敬,如果屏幕尺寸被改變,畫布將自動改變尺寸來匹配屏幕帘皿。
? ??????????????????????????????????Pixel Perfect:只有RenderMode為Screen類型時才有的選項赖捌。使UI元素像素對應(yīng),效果就是邊緣清晰不模糊矮烹。
? ? ? ? ? ? ? ? ? ? ? ? ????Sort Layer:多個Canvas才有效果。Sort Layer是UGUI專用的設(shè)置罩锐,用來指示畫布的深度奉狈。數(shù)值越大,顯示的優(yōu)先級就越高涩惑,也就是數(shù)值大的Canvas會遮擋住數(shù)值小的Canvas仁期。
????????????????????????????????????Target Display:使Canvas渲染到指定的顯示中。支持的輔助顯示器(例如監(jiān)視器)的最大數(shù)量為8.竭恬。
? ??????????????????????????????????Additional Shader Channels:沒用過跛蛋。以下是官方解釋
????????????????????????????????????????Get or set the mask of additional shader channels to be used when creating the Canvas mesh.
????????????????????????????????????????The Canvas will always include Position, Color, and Uv0 shader channels when generating the mesh for a overlay Canvas and will also include Normal and Tangent for ScreenSpace.Camera and World space Canvas. These are the optional additional parameters to be copied.
????????????????????Screen Space-Camera:攝影機(jī)模式。
????????????????????????????和Screen Space-Overlay模式類似痊硕,畫布也是填滿整個屏幕空間赊级,如果屏幕尺寸改變,畫布也會自動改變尺寸來匹配屏幕岔绸。所不同的是理逊,在該模式下,畫布會被放置到攝影機(jī)前方盒揉。在這種渲染模式下晋被,畫布看起來 繪制在一個與攝影機(jī)固定距離的平面上。所有的UI元素都由該攝影機(jī)渲染刚盈,因此攝影機(jī)的設(shè)置會影響到UI畫面羡洛。在此模式下,UI元素是由攝像機(jī)的Projection參數(shù)perspective(3D)也就是視角設(shè)定的藕漱,視角廣度由Filed of View設(shè)置欲侮。
????????????????????這種模式可以用來實現(xiàn)在UI上顯示3D模型的需求,比如很多MMO游戲中的查看人物裝備的界面谴分,可能屏幕的左側(cè)有一個運動的3D人物锈麸,右側(cè)是一些UI元素。通過設(shè)置Screen Space-Camera模式就可以實現(xiàn)上述的需求牺蹄。
? ??????????????????????Render Camera:渲染攝像機(jī)忘伞。
? ??????????????????????Plane Distance:畫布距離攝像機(jī)的距離。
? ??????????????????????Sorting Layer: 多個Canvas才有效果。Sorting Layer是UGUI專用的設(shè)置氓奈,用來指示畫布的深度翘魄。可以通過點擊該欄的選項舀奶,在下拉菜單中點擊“Add Sorting Layer”按鈕進(jìn)入標(biāo)簽和層的設(shè)置界面暑竟,或者點擊導(dǎo)航菜單->edit->Project Settings->Tags and Layers進(jìn)入該頁面。
可以點擊“+”添加Layer育勺,或者點擊“-”刪除Layer但荤。畫布所使用的Sorting Layer越排在下面,顯示的優(yōu)先級也就越高涧至。
? ??????????????????????Order in Layer:多個Canvas才有效果腹躁。在相同的Sort Layer下的畫布顯示先后順序。數(shù)字越高南蓬,顯示的優(yōu)先級也就越高纺非。
????????????????????World Space: 世界控件模式。
????????????????????????在此模式下赘方,畫布被視為與場景中其他普通游戲?qū)ο笮再|(zhì)相同的類似于一張面片(Plane)的游戲物體烧颖。畫布的尺寸可以通過RectTransform設(shè)置,所有的UI元素可能位于普通3D物體的前面或者后面顯示窄陡。當(dāng)UI為場景的一部分時炕淮,可以使用這個模式。
????????????????Event Camera:用來指定接受事件的攝像機(jī)泳梆,可以通過畫布上的GraphicRaycaster組件發(fā)射射線產(chǎn)生事件鳖悠。