Unity3D的UGUI——Canvas

Canvas

UGUI是Unity新支持的2D界面控件,所有的UI控件都需要在包含Canvas组件的物体下边充当子物体,我们可以在GameObject->UI下创建物体时,会自动生成Canvas以及与其对应的EventSystem控件。
Unity3D的UGUI——Canvas_第1张图片

Canvas主要包含以下部分:Canvas、Canvas Scaller、Graphic Raycaster。

Canvas

Unity3D的UGUI——Canvas_第2张图片
Canvas可以只有一个,也可以多个Canvas,或者将一个Canvas作为另一个Canvas的自物体。

其中Canvas的渲染方式有3种,分别是 Screen Space - Overlay, Screen Space - Camera和World Space。

Screen Space - Overlay

在此模式下,Canvas将作为2D图像直接渲染在屏幕上,且处于屏幕的最前方,不会受其他任何物体遮挡, 同时不受任何设置的影响,即使没有相机也可以看到其内容。
Unity3D的UGUI——Canvas_第3张图片

Screen Space - Camera

在此模式下,Canvas可以指定渲染的相机,并根据相机距离Canvas的远近以及相机的视锥体大小进行动态缩放,最终实现在屏幕上的平铺效果。当有物体比Canvas更接近相机时,该物体会显示在Canvas的前方。物体距离相机比Canvas远的物体将会被遮挡。
Unity3D的UGUI——Canvas_第4张图片

World Space

在此模式下,Canvas会像3D物体一样位于游戏场景中,可以设置其位置和大小,与其他3D物体具有同样的显示效果。
Unity3D的UGUI——Canvas_第5张图片
详细信息可参看官方文档

Canvas Scaler

这个控件主要负责Canvas的显示效果
其中UI Scale Mode较为重要。
Unity3D的UGUI——Canvas_第6张图片
可选的模式有3种,分别是 Constant Pixel Size, Scale With Screen Size和Constant Physical Size。

Constant Pixel Size

当选择Constant Pixel Size时,即完全根据Canvas设置的大小进行显示,无论在何种分辨率下,大小均为Unity中设置的大小(不能很好地适应不同分辨率)。
Scale Factor:保持大小的比例 。原图100x100,原始大小1=100x100,原来的2倍大 2=200x200
Reference Pixels Per Unity:100表示Unity里的1单位大小代表100像素。

Scale With Screen Size

当选择Scale With Screen Size时,可以根据屏幕的大小进行缩放,在此模式下有三种不同的缩放方式,如下所示:
Unity3D的UGUI——Canvas_第7张图片
Reference Resolution属性主要为参考分辨率大小,在此分辨率下进行设计,随后根据不同的缩放方式适应不同的分辨率。
Screen Match Mode包括 Match Width or Height, Expand,Shrink三种模式。
Match Width or Height:根据Canvas的宽度或高度或者一定的比例进行缩放。
Expand:Canvas不会小于设置的分辨率大小
Shrink:Canvas不会大于设置的分辨率大小
在分辨率自适应模式下,可能会带来物体缩放问题,如果缩放不正常,可在代码中手动更改localScale为(1,1,1)进行部分修正。

Constant Physical Size

当选择Constant Physical Size模式时,则根据设定好的物理大小进行展示,根据不同分辨率适应性不是很好。

Graphic Raycaster

每个Canvas都需要添加此组件,用于获取对UGUI的控制和操作。

你可能感兴趣的:(Unity学习,unity3d,ui,canvas)