Unity3D - UGUI

UGUI是Unity4.6开始,Unity自家的GUI系统,已经相当成熟了,其功能和易用性上一点也不逊于NGUI(Unity上一款流行的第三方UI插件)。

画布(Canvas)

每一个GUI控件必须是画布的子对象。如果当前不存在画布,那么系统会自动创建一个画布。

这里写图片描述

UI元素的绘制顺序依赖于它们在Hierarchy面板中的顺序。如果两个UI元素重叠,后添加的UI元素会出现在之前添加元素的上面。

Render Mode:渲染模式

  • Screen Space-Camera:画布以特定的距离放置在指定的相机前,UI元素被指定的相机渲染,相机设置会影响UI的呈现。
  • Screen Space-Overlay:使画布拉伸以适应全屏大小,并且事GUI空间在场景中渲染与其他物体的前方。如果调整屏幕大小或改变分辨率,画布将会自动的改变大小以适应屏幕显示。
  • World Space:该选项使画布渲染于世界空间。该模式使画布在场景中像其他游戏对象一样。可以通过手动调整它的Rect Transform来改变画布的大小,GUI空间可能会绘制于其他物体的前方或后方。

使用Canvas Group组件:可以对UI元素进行分组方便统一管理。

  • Alpha:可调节该组UI元素的透明度。
  • Interactable:选项可通知该组件是否接受输入控制。
  • Blocks Raycasts:选项控制该组件是否作为碰撞器的RayCasts。注意这不适用于Physics.Raycast,当要处理Canvas上UI元素的RayCast时应当调用绑定在Canvas上的Graphic Raycaster组件的RayCast方法。
  • Ignore Parent Groups:用于控制是否忽略父对象上的Canvas Group设置。

Rect Transform(矩形变换)

Rect Transform(矩形变换)是一种新的变换组件,适用于所有的GUI控件上来替代原有的变换组件。

这里写图片描述

矩形变换组件区别于原有变换的地方是在场景中Transform组件表示一个点,而Rect Transform表示一个可以容纳UI元素的矩形,而且矩形变换还有锚点和轴心点的功能。

矩形变换的属性和功能

属性功能
Pos(x,y,z)定义矩形相当于锚的轴心点位置。
Width/Height定义矩形的宽度和高度
Left/Top/Right/Bottom定义矩形的边缘相对于锚点的位置,锚点分离时会显示在Pos和Width、Height的位置。
Anchors定义矩形在左下角和右上角的锚点
Min定义矩形左下角锚点。(0,0)对应父物体的左下角,(1,1)对应父物体的右上角
Max定义矩形右上角锚点。(0,0)对应父物体的左下角,(1,1)对应父物体的右上角
Pivot定义矩形旋转时围绕的中心点坐标
Rotation定义矩形围绕旋转中心点的旋转角度
Scale定义该对象的缩放系数


为了布局的统一,一般建议调整UI元素的大小,而不是对其进行缩放(Scale)。调整UI元素的大小不会影响字体大小、切片图像的边界大小。缩放(Scale)可用于动画的效果或其他效果,缩放会作用于整个元素,包括字体和边框。

所有的旋转和缩放都是围绕轴心点(Pivot)发生变化的。

文本(Text)

文本控件显示非交互文本。可以作为其他GUI控件的标题或者标签,也可用于显示指定或者其他文本。

文本控件的属性和功能:

属性功能
Text控制显示的文本
Font用于显示文本的字体
Font Style文本样式,可选择:正常、粗体、斜体、粗体
Font Size文本的字体大小
Line Spacing文本行之间的垂直间距
Rich Text是否为富文本样式
Alignment文本的水平和垂直对齐样式
Horizontal Overflow用于处理文字太宽而无法适应文本框的方法,选项包含自动换行和溢出
Vertical Overflow用于处理文字太高而无法适应文本框的方法,选项包含截断和溢出
Best Fit忽略大小属性使文本适应控件大小
Color文本颜色
Material渲染文本的材质

图像(Image)

图像控件用来显示非交互式图像。可用于作为装饰、图标等。在其他控件中也可通过脚本控制来改变图像。该控件类似于原始图像(Raw Image)控件,但是提供了更多选项的动画控制和准确的填充控制功能。图像控件需要Sprite类型的纹理,原始图像(Raw Image)可以接受任何类型的纹理。

图像控件的属性和功能:

属性功能
Source Image表示要显示的图像纹理(类型必须为Sprite)
Color应用与图像的颜色
Material图像着色所需的材质
Image Type显示图像的类型,选项包括Simple、Sliced、Tilled、Filled
Preserve Aspect(仅适用于Simple和Filled模式)图像的原始比例的高度和宽度是否保持相同比例
Fill Center(Sliced和Tiled模式)是否补填图像的中心部分
Fill Method(仅适用于Filled模式)用于指定动画中图像的填充方式,选项有Horizontal、Vertical、Radial90、Radial180、Radial360
Fill Origin(仅用于Filled模式)填充图像的起始位置,选项包括Bottom、Right、Top、Left
Fill Amount(仅适用于Filled模式)当前填充图像的比例(范围从0.0到1.0)
Clockwise(仅适用于Filled模式)填充方向是否为顺时针
Set Native Size设置图像尺寸为原始图像纹理的大小

图像类型如下:

  • Simple:默认情况下适应控件的矩形大小。如果启用Preserve Aspect选项,图像的原始比例会被保存,剩余的未被填充的矩形部分会被空白填充。
  • Sliced:图像被切成九宫格模式,图片的中心被缩放以适应矩形控件,边界仍会保持它的尺寸。禁用Fill Center选项后的图像的中心将会被挖空。
  • Tiled:图像会保持原始大小, 如果控件的大小大于原始图片大小,图像会重复填充到控件中。
  • Filled:图像被显示为Simple类型,但是可以通过调节填充模式和参数使图像呈现出从空白到完整的填充过程。

原始图像(Raw Image)

原始图像控件用来显示非交互图像控件,可以用于装饰或图标等。在其他控件中也可以通过脚本控制来改变原始图像。原始图像支持显示任何类型的纹理,而图像控件仅支持Spirte类型的纹理。

这里写图片描述

原始图像控件的属性和功能:

属性功能
Texture表示要显示的图像纹理
Color应用到图像的颜色
Material为图像着色所使用的材质
UI Rect在控件矩形中图像的偏移和尺寸以规范化坐标的形式表示(0.0~1.0),图像边缘被拉伸以填充UV矩形周围控件

UV属性允许显示较大图像的一小部分。X和Y坐标指定图像的那一部分与控件的左下角对齐。比如X坐标为0.25表明从图像的四分之一处进行切割。W和H属性表示缩放以适应控件矩形部分的宽度和高度,宽度和高度为0.5表示缩放图像的四分之一在控件矩形上显示。

遮罩(Mask)

遮罩是一种不可见的UI组件(在Inspector中Add Component按钮后搜索Mask添加),它可以用来修饰控件子元素的外观。遮罩将子元素限制为父物体的形状。如果子物体大于父物体将只显示和父物体大小相同的那一部分。

其中Show Mask Graphic表示是否绘制父物体的图形。Mask通常和Image控件组合使用。

过渡选项(Transition Options)

过渡选项及其功能:

属性功能
Color Tint状态决定颜色,可以为每个单独的状态选择颜色。也可以设置不同状态之间的淡入淡出持续时间,数值越高,颜色之间的淡入淡出会越慢。
Sprite Swap允许不同的状态下显示不同的Sprite,Sprite可以定制
Animation在不同的状态播放动画,使用Animation过度必须要有动画组件,并确保Root motion为禁用状态
None此选项仅适用于按钮控件,表示没有任何状态效果
Color Tine过渡选项面板:

这里写图片描述

Color Tine过渡选项及其功能:

属性功能
Target Graphic用于交互组件的图形
Normal Color控件的正常颜色
Highlighted Color控件高亮时的颜色
Pressed Color控件被按下时的颜色
Disabled Color控件被禁用时的颜色
Color Multiplier与颜色数值相乘
Fade Duration从一种状态过渡到另一种状态的时间
Sprite Swap过渡选项面板

Sprite Swap过渡选项及其功能:

属性功能
Target Graphic正常状态显示的Sprite类型图片
Highlighted Sprite鼠标滑过控件时显示的Sprite类型图片
Pressed Sprite图片被按下时显示的Sprite类型图片
Disabled Sprite控件被禁用时显示的Sprite类型图片
Animation过渡选项面板

Animation过渡选项及其功能:

属性功能
Normal Trigger正常状态下使用的动画触发器
Highlighted Trigger高亮状态下使用的动画触发器
Pressed Trigger按下状态下使用的动画触发器
Disabled Trigger禁用状态下使用的动画触发器

按钮(Button)

按钮控件响应来自用户的单击事件,用于启动或确认某项操作。

按钮控件属性及其功能:

属性功能
Interactable控制该组件是否接受输入,如果该组件选项没有被选中时,按钮则不能够接受输入,且动画过渡为不可用
Transition用于控制按钮响应用户操作的方式
Navigation确定控件的顺序

按钮控件事件和功能:

属性功能
On Click响应按钮的单击事件,当用户单击并释放按钮时触发

开关(Toggle)

Toggle控件时一个允许用户选择或取消选中某一个选项的复选框。

按钮控件属性和功能:

属性功能
Interactable控制该组件是否接受输入,如果该选项没有选中,按钮则不能接受输入且动画过渡为不可用
Transition用于控制按钮响应用户操作的方式
Navigation确定控件的顺序
Is On初始控件时是否启用
Toggle Transition当Toggle值改变是Toggle响应用户操作的方式
GraphicToggle被勾选时显示的图形
Group表示Toggle所在的Toggle Group,属于同一组的Toggle控件一次只能选择其中一个Toggle,当一个Toggle被选中时其他的选择就会被自动取消。


Toggle控件事件和功能:

属性功能
On Value Change当控件值改变时,处理控件值切换时的响应。

Toggle控件允许用户打开或者关闭选项。在多选一的情况下可以把几个Toggle控件组合成一个Toggle Group。Toggle控件有一个On Value Change的事件,当值改变时会做出响应。

滑动条(Slider)

Slider控件允许用户通过鼠标从一个预先确定的范围选择一个数值。

属性和功能:

属性功能
Interactable控制该组件是否接受输入,如果该选项没有选中,按钮则不能接受输入且动画过渡为不可用
Transition用于控制按钮响应用户操作的方式
Navigation确定控件的顺序
Fill Rect填充控制区域的图形
Handle Rect滑动“处理”部分的图形,即滑动条上的滑块
Direction当移动滑块时,滑动条的值会增加的方向,包括LeftToRight、RightToLeft、BottomToTop、TopToBottom
Min Value最小值
Max Value最大值
Whole Numbers滑块值是否限定为整数
Value滑动块当前的数值


事件和功能:

属性功能
On Value Changed每当滑动块的数值由于拖动被改变时调用,float类型的值会被传递无论Whole Number属性是否被启用。

滚动条(Scrollbar)

滚动条允许用户滚动因图像或者其他可视物体太大而不能完全看到视图。滚动条与滑动条的区别在于后者选择数值而后者主要用于滚动视图。例如:文本编辑器中的垂直滚动条。

属性和功能:

属性功能
Interactable控制该组件是否接受输入,如果该选项没有选中,按钮则不能接受输入且动画过渡为不可用
Transition用于控制按钮响应用户操作的方式
Navigation确定控件的顺序
Handle Rect滑动“处理”部分的图形,即滑动条上的滑块
Direction当移动滑块时,滑动条的值会增加的方向,包括LeftToRight、RightToLeft、BottomToTop、TopToBottom
ValueScrollbar的初始值,范围为0.0~1.0
Size滑块的大小,范围为0.0~1.0
Number Of SetupScrollBar控件所允许的独特的滚动位置数目


事件和功能:

事件功能
On Value Changed每当滚动条的位置由于拖动被改变时调用,float类型的值会被传递给响应函数

布局元素控件(Layout Element)

这里写图片描述

Layout Element控件的属性和功能

事件功能
Ignore Layout是否忽略布局
Min Width该布局元素应具有的最小宽度
Min Height该元素布局应具有的最小高度
Preferred Width该布局元素在另外的宽度分配之前的首选宽度
Preferred Height该布局元素在另外的高度分配之前的首选高度
Flexible Width该布局元素与同级对象填充的相对宽度
Flexible Height该布局元素与同级对象填充的相对高度

内容尺寸裁剪(Content Size Fitter)

这里写图片描述
Content Size Fitter控件的属性和功能

事件功能
Horizontal Fit宽度如何被控制
None对基布局元素的宽度不做控制
Minimun基于布局元素的最小宽度控制
Preferred基于布局元素的首选宽度控制
Vertical Fit高度如何被控制
None对基布局元素的高度不做控制
Minimun基于布局元素的最小高度控制
Preferred基于布局元素的首选高度控制

长宽比例裁剪(Aspect Ratio Fitter)

这里写图片描述

Aspect Ratio Fitter控件的属性和功能

事件功能
Aspect Mode矩形长宽的执行模式
None不适用矩形的长度比
Width Controls Height基于宽度自动调节高度
Height Controls Width基于高度自动调节宽度
Fit In Parent宽度、高度、位置、和锚点会自动调整以保持与父对象相同的宽高比,父对象的矩形控件可能不被该矩形覆盖
Envelope Parent宽度、高度、位置、锚点会自动调整以覆盖父对象,同时也会与父对象保持相同的宽高比,该矩形的空间可能比父对象的矩形空间更大
Aspect Ratio执行的宽高比,这是宽度除以高度

水平布局组(Horizontal Layout Group)

这里写图片描述

Horizontal Layout Group控件的属性和功能

属性功能
Padding布局组的内边距
Spacing布局元素之间的间距
Child Alignment没有完全填充可用空间的子布局元素的对齐方式
Child Force Expand是否强制子元素扩展填充额外的可用空间

垂直布局组(Vertical Layout Group)

这里写图片描述

Vertical Layout Group控件的属性和功能

属性功能
Padding布局组的内边距
Spacing布局元素之间的间距
Child Alignment没有完全填充可用空间的子布局元素的对齐方式
Child Force Expand是否强制子元素扩展填充额外的可用空间

网格布局组(Grid Layout Group)

这里写图片描述

Grid Layout Group控件的属性和功能

属性功能
Padding布局组的内边距
Cell Size组中布局元素的尺寸
Spacing布局元素之间的间距
Start Corner第一个元素所在的位置
Start Axis放置元素沿那个主坐标轴。在开始一个新行之前Horizontal选项将添补一整行,Vertical将添补一整列
Child Alignment没有完全填充可用空间的布局元素的对齐方式
Constraint限制网格的行列数的一个固定数值,以舒服自动布局系统
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值