Canvas画布是承载所有UI元素的区域。Canvas实际上是一个游戏对象上绑定了Canvas组件。所有的UI元素都必须是Canvas的自对象。如果场景中没有画布,那么我们创建任何一个UI元素,都会自动创建画布,并且将新元素置于其下。
在Hierarchy视图点击右键UI→Canvas即可创建画布。
Render Mode:
Screen Space-Overlay:覆盖模式。
画布会填满整个屏幕空间,并将画布下面的所有的UI元素置于屏幕的最上层,或者说画布的画面永远“覆盖”其他普通的3D画面,如果屏幕尺寸被改变,画布将自动改变尺寸来匹配屏幕。
Pixel Perfect:只有RenderMode为Screen类型时才有的选项。使UI元素像素对应,效果就是边缘清晰不模糊。
Sort Layer:多个Canvas才有效果。Sort Layer是UGUI专用的设置,用来指示画布的深度。数值越大,显示的优先级就越高,也就是数值大的Canvas会遮挡住数值小的Canvas。
Target Display:使Canvas渲染到指定的显示中。支持的辅助显示器(例如监视器)的最大数量为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:摄影机模式。
和Screen Space-Overlay模式类似,画布也是填满整个屏幕空间,如果屏幕尺寸改变,画布也会自动改变尺寸来匹配屏幕。所不同的是,在该模式下,画布会被放置到摄影机前方。在这种渲染模式下,画布看起来 绘制在一个与摄影机固定距离的平面上。所有的UI元素都由该摄影机渲染,因此摄影机的设置会影响到UI画面。在此模式下,UI元素是由摄像机的Projection参数perspective(3D)也就是视角设定的,视角广度由Filed of View设置。
这种模式可以用来实现在UI上显示3D模型的需求,比如很多MMO游戏中的查看人物装备的界面,可能屏幕的左侧有一个运动的3D人物,右侧是一些UI元素。通过设置Screen Space-Camera模式就可以实现上述的需求。
Render Camera:渲染摄像机。
Plane Distance:画布距离摄像机的距离。
Sorting Layer: 多个Canvas才有效果。Sorting Layer是UGUI专用的设置,用来指示画布的深度。可以通过点击该栏的选项,在下拉菜单中点击“Add Sorting Layer”按钮进入标签和层的设置界面,或者点击导航菜单->edit->Project Settings->Tags and Layers进入该页面。
可以点击“+”添加Layer,或者点击“-”删除Layer。画布所使用的Sorting Layer越排在下面,显示的优先级也就越高。
Order in Layer:多个Canvas才有效果。在相同的Sort Layer下的画布显示先后顺序。数字越高,显示的优先级也就越高。
World Space: 世界控件模式。
在此模式下,画布被视为与场景中其他普通游戏对象性质相同的类似于一张面片(Plane)的游戏物体。画布的尺寸可以通过RectTransform设置,所有的UI元素可能位于普通3D物体的前面或者后面显示。当UI为场景的一部分时,可以使用这个模式。
Event Camera:用来指定接受事件的摄像机,可以通过画布上的GraphicRaycaster组件发射射线产生事件。