UGUI学习笔记1——Canvas

来源:互联网 发布:人工智能 招聘行业应用 编辑:程序博客网 时间:2024/05/19 02:42

Canvas

Cavans相当于NGUI中的Root,所有UI的根节点。所有的UI元素都要以此为父物体。同一个场景中可以有多个Cavans控制不同的UI。
Canvas有三种渲染模式。
Screen Space - Overlay
Screen Space - Camera
World Space

Screen Space - Overlay
覆盖模式和会渲染在所有物体,也包括其他模式的UI的前面,而且即使场景中没有摄像机,也可以显示。并且自动随屏幕变换,此模式下Canvas的Rect Transform组件是不可用的。sort order用来控制UI的缩放。

Screen Space - Camera
摄像机模式下需要指定渲染这个Canvas的摄像机。和3D场景的关系是,这个Cavans相当于一个plane上的图,如果3D物体离相机比UI近,物体会在UI前面。同上,UI随屏幕自动变换,Canvas的Rect Transform组件是不可用的。通过 plane distance控制前后显示顺序,plane distance相同,还可以设置sorting layer,sorting layer列表下面的显示级别更高,同一sorting layer中还可以用order in layer控制先后,数字越大越靠前,如果还相同,则看hierarchy中下面UI的比上面的靠前。

World Space
需要指定摄像机,Cavans相当于plane,可以看成就是世界坐标中的一个3D物体,Rect Transform组件可用。也有sorting layer和order in layer,原理同上

Screen Space - Overlay 模式永远在覆盖在最上面一层。
Screen Space - Camera和World Space 两种模式的UI混合时,如果是同一相机,Screen Space - Camera的 plane distance和World Space 离相机的距离,距离相同对比sorting layer和order in layer。
多个摄像机照不同的Canvas时,前后顺序优先以摄像机的deep值决定,然后在根据sorting layer和order in layer决定。

Canvas Scaler

控制Canvas 的自适应屏幕缩放
在canvas的渲染模式选择Screen Space - Overlay 和Screen Space - Camera时有三种模式:
Constant Pixel Size
Scale With Screen Size
Constant Physical Size

Constant Pixel Size
保持固定的像素尺寸,无论屏幕尺寸如何变化。
Scale Factor:控制Canvas 下所有UI元素的缩放比例。
Reference Pixels Per Unit :对应sprite中的Pixels Per Unit,每一单元对应的像素数量,默认值是100,具体干嘛还不是很清楚。

Scale With Screen Size
根据屏幕变化大小
Reference Resolution:参考分辨率
Screen Match Mode:
Match Width Or Height:根据参考分辨率的高或宽或者某个值,来缩放UI元素。 在下方的Match滑竿上设置值
Expland:分辨率设置不会小于Canvas设置的分辨率。
Shrink:分辨率不会大于Canvas设置的分辨率。
Reference Pixels Per Unit同上。

Constant Physical Size
固定的物理尺寸
Physical Unit:物理单位,有厘米,英寸等
Fallback Screen DPI:屏幕每英寸的像素,如果不知道,就用这里的设置,默认值96。
Default Sprite DPI:默认的spriteDPI,也是96,可能是和sprite的Pixels Per Unit有关,但是我还没弄明白。
Reference Pixels Per Unit同上。

Graphic Raycaster

大概是用来做UI事件的。没太看懂,属于Event System Reference里面的,不过新建一个Canvas都会带一个。后面看UI事件应该会有详细的介绍。
官方文档上写的是可以检测到Cavans下面所有图像的Raycast,确定是否有东西被射线照到。

0 0