unity版本:2021.3.24f1c1
目录
Sorting Layer & Orter in Layer
基本概念
Canvas是用来放置所有UI元素的地方,所有的UI元素必须是这样一个Canvas的子对象。它给Unity的渲染系统提供按层划分的几何系统,负责将其内部的几何形状合并到批处理、生成合适的渲染指令并发送到Unity图形系统。
渲染模式
- Canvas具有三种渲染模式,即:
- Screen Space - Overlay(屏幕空间-覆盖)
- Screen Space - Camera(屏幕空间-相机)
- World Space(世界空间)
Screen Space - Overlay
简介
覆盖模式也是Canvas的默认模式,这一模式的Canvas下的所有UI会永远处于屏幕的最前方,不会被游戏场景当中的物体遮挡。值得注意的是该模式下的Canvas可以遮挡另外两种模式的Canvas,反之则不行。
参数
Pixel Perfect
启用Pixel Perfect可以确保UI的边缘更加清晰,但相应的也会增加运算量。
SortOrder
当Hierarchy下存在多个激活的、模式为Overlay(覆盖)的Canvas时,会先依据该值的大小决定Canvas渲染遮挡关系,SortOrder值大的可以遮挡住SortOrder值更小的。当存在多个Canvas的SortOrder值相等时,则会依据Hierarchy中Canvas的顺序进行判断遮挡关系,在Hierarchy中越下的可以遮挡上方的Canvas。
TargetDisplay
目标显示器,存在多个显示器的话用这个决定渲染在哪个显示器。
Screen Space - Camera
简介
在这一模式下的Canvas可以视作空间中的物体,只不过会与渲染该Canvas摄像机相对固定,该模式的Canvas需要绑定一个摄像机用于显示Canvas下的UI内容,同时Canvas和绑定的摄像机可拍摄到的物体产生遮挡关系,而Canvas与摄像机的距离取决于Plane Distance参数,值得一提的是绑定的摄像机即便是Perspective(透视投影)的模式下,修改Plane Distance也不会改变Canvas在屏幕上的的大小,即该模式的Canvas在屏幕显示上不存在近大远小的情况,因为在Perspective(透视投影)的模式下Canvas越远离摄像机就会被放得越大,但因为UI一般为2D物体,因此绑定的摄像机一般设置为Orthographic(正交投影)模式。
举例来说的话,就像Canvas被固定在摄像机的本地坐标系的Z轴的Plane Distance的位置,摄像机移动、旋转的话Canvas也会跟着一起变化,始终保持自己在摄像本地坐标系的Z轴的Plane Distance的位置(图为Orthographic(正交投影)模式):
参数