1、画布(Canvas)
每一个GUI控件必须是画布的子对象。当选择菜单栏中GameObject→UI下的命令来创建一个GUI控件时,如果当前不存在画布系统将会创建一个画布。
UI元素的绘制顺序依赖于它们在Hierarchy面板中的顺序。如果两个UI元素重叠,后添加的UI元素会出现在之前添加的元素的上面。如果要修改UI元素的相对顺序,可以通过在Hierarchy视图中拖动元素进行排序。对UI元素的排序也可以通过在脚本中调用Transform组件上的SetAsFirstSibling、SetAsLastSibling和SetSiblingIndex等方法来实现。
(1)Render Mode:渲染模式
Screen Space-Camera:画布以特定的距离放置在指定的相机前,UI元素被指定的相机渲染,相机设置会影响到UI的呈现。
Screen Space-Overlay:使画布拉伸以适应全屏大小,并且使GUI控件在场景中渲染与其他物体的前方。如果调整屏幕大小或改变分辨率,画布将会自动地改变大小以适应屏幕显示。
World Space:该选项使画布渲染于世界空间。该模式使画布在场景中像其他游戏对象一样。可以通过手动调整它的Rect Transform来改变画布的大小,GUI控件可能会渲染于其他物体的前方或后方。
(2)使用Canvas Group组件(在Inspector视图中单击Add Component按钮后搜索Canvas Group添加)可以对UI元素进行分组,方便统一管理。
Alpha:可调节该组UI元素的透明度
Interactable:选项可控制该组件是否接受输入控制。
Blocks Raycasts:选项控制该组件是否作为碰撞器 RayCasts。注意这不适用于Phycics.Raycast,当要处理Canvas上UI元素的Raycast时应调用绑定在Canvas上的Ghaphic Raycaster组件的Raycast方法。
Ingore Parent Groups:用于控制是否忽略父对象上的Canvas Group设置。
在一个Unity工程中,对于所有GUI控件,一个画布已足够使用,但是在场景中组合使用多个画布也是可行的。用户也可以嵌套使用画布,即可使一个画布作为其他画布的子对象。一个嵌套的画布使用其父对象的渲染模式,是可以分别控制每一个画布的透明度。
2、Rect Transform(矩形变换)
Rect Transform(矩形变换)是一种新的变换组件,适用于在所有的GUI空间上来代替原有的变换组件。
矩形变换区别于原有变换的地方是在场景中Transform组件表示一个点,而Rect Transform表示一个可容纳UI元素的矩形,而且矩形变换还有锚点和轴心点的功能。
矩形变换的属性和功能
属性
功能
Pos(X,Y and Z)
定义矩形相当于锚的准心点位置
Width/Height
定义矩形的宽度和高度
Left,Top,Right,Bottom
定义矩形的边缘相对于锚点的位置,锚点分离时会显示在Pos和Width/Height的位置
Anchors
定义矩形在左下角和右上角的锚点