Unity UGUI入门

本文详细介绍了Unity中的UGUI系统,包括RectTransform、UI定位、锚点、Pivot、缩放和旋转等概念,以及Canvas、RenderMode、CanvasScaler、DPI管理、图形射线检测、UI层级排序、各种组件如Image、Text、Toggle等的使用方法和注意事项。
摘要由CSDN通过智能技术生成
UGUI
  • RectTransform: (RectTransform是transform的子类)
  • UI位置:是在锚点为原点的二维坐标,决定了UI在屏幕的显示位置,最基础的属性UI大小UI在屏幕中的长和宽
  • 锚点(Anchors):的位置决定了物体的对齐方式,对齐某个点或者某个边。
  • PivotUI对图片的对应点,中心点
  • 缩放:修改UI的缩放大小。旋转UI的旋转角度
  • Unity 提供的快速对齐方案,可以选择对应的位置快速设置锚点, 按住 ALT 件可以直接设置   锚点可以适配屏幕的某一部分

Unity组件入门篇总目录----------点击导航


Canvas:(画布)

  • Render Mode: Screen Space -Overlay

            
  • Render Mode: Screen Space -Camera

            
  • Render Mode: world Space

            
  • Canvas Scaler

  • UI scale mode Constant Pixel Size

            
            当遇到不适配的情况
            GetConponent<CanvasScaler>().scalerFactor = (比例)
  • UI scale mode scale with screen size

            
  • screen match mode

  • match width Screen Size:根据屏幕的高和宽匹配。
  • Expand:不会让屏幕尺寸小于标准尺寸,会往外扩展
  • Shrink :画布大小不会高于屏幕分辨率,会压缩

UI scale mode Constant Physical Size

  • DPI:一平方英尺的屏幕点数
  • Fallback screen DPI:当无法找到物理的DPI的时候,就使用后面的默认值
  • Default sprite DPI :默认的 DPI

GraPhic Raycaster(图形射线)

Ignore Revered Graphics 忽略颠倒的图形,在图形旋转后射线就不响应,反之则响应
Blocking Objects 阻挡的对象类型(判断依据是2D还是3D 的碰撞体,和本来的物体无关)
      •   None :任何物体都不会阻挡
      •   Two D: 2D 物体阻挡
      • Three D :仅 3D 物体阻挡
      • All :所有物体都会阻挡
Blocking Mask 对应的那些层可以阻挡UI的射线。

Canvas Group:(画布组)

Blocks Raycasts:所管理的射线是否可以进行射线检测。
Ignore Parent Group 忽略父物体的管理

UI渲染层级的基本概念:(挺重要的,可以帮助理解)

UI 的渲染层级,后渲染的会在先渲染的前面,这就是 UI 的层级排列顺序,谁后渲染就会显示在屏幕前面。决定 UI 层级有四个种因素
1 ,摄像机:
摄像机的位置决定了UI的显示,当看不到的UI的位置,UI就不会显示,不同的摄像机,可能显示的UI也不同,在相机中有Depth的参数,这个参数决定了显示的顺序,就是UI的渲染顺序。
2 Sorting Layer
是自定义的渲染层级,会根据你自定义的渲染层进行排序,决定UI组件的先后顺序。
3 Order in Layer
当物体在同一个层级的时候,如何决定物体的渲染顺序,就用到的order in Layer它的参数大小就决定的UI的渲染顺序
4 ,自然顺序
UI的排列顺序和Hlerarchy的排队有关的,在上面的UI组件会先渲染,会在最开始出现在屏幕的最后面,在后面的UI组件会后渲染,显示在屏幕的前面,在不调整层的情况下会这样显示。

Image:(图片)

Raycast Target 决定了当前 UI 是否会进行射线检测,决定触发事件,能否按键响应。
注意点: 导入的必须是精灵( sprite )格式。
Image Type :(图片类型)
  • Simple 基础默认的图片,无特殊处理
  • Sliced: 九宫格分割的图片( fill center 填充中心)
  • Tiled : 平铺
  • Filled: 填充
  • Fill Method 决定了填充的模式, Fill Orgin 决定的填充的原点。
  • Fill Amount 填充的百分比。 Clockwise :顺时针方向
  • Preserve Aspect :保留方面
UV 坐标的概念:( Raw image
Raw Image 不同于 UIImage ,它是直接添加 Texture 图片,不需要转化成 sprite 类型。 UV 类似于建模中的贴图,决定了贴图的偏移和平铺

Text(文本组件)

Rich Text :富文本
在一个文本中有不同类型的字体格式,类似于 <b>text</b> 的格式
<i> 斜体 </i>    <size=50> 大小 </size>
<color=red> 颜色 </color>
<color=#ff000000> 颜色 </color>

Unity遮罩(Mask组件

作用可以遮挡子物体的显示,当子物体超过父物体的大小的时候就会隐藏超出范围的显示,事项遮罩的功能。mask组件会增加性能消耗,
尽量使用Rect Mask 2D实现的效果和Mask类似,但是不会增加性能消耗。

Selectable(交互组件的基类)

Color Tint
  • color multiplier 彩色乘法器
  • fade duration 衰减持续时间

Sprite Swap

AnimationUI动画)

可以用 DOtween 插件实现。

Button组件

使用方法:
将物体拖入 None(Object) 中,就可以在右边的位置选择函数方法,然后点击按钮就可以调用方法。

Toggle(复选框)

Toggle Group (复选框组)
Toggle Group 的作用是把多个 Toggle 组成一个组,然后选择的时候就可以单选其中得到一个,其它的就会取消 这个组件的使用方法是拖入需要管理的 Toggle Groupde 的属性中然后就可以一起管理多个组件。

Slider(滑动条)

Whole Numbers
这个参数的勾选在移动滑动条的时候一定会是整数,就近取整实现一步一步的滑动,滑动条的主要是控制 value 的值,控制着滑动条的填充。

Scrollbar(滚动条)

Number Of Steps
这个参数的值决定了这个滑动条几步可以滑动完,移动的时候可以自适应位置。

ScrollView(滚动框)

Movement Type( 移动模式 )
  • Unrestiricted:无限制的,可以随意拖动。
  • Elastic有弹性的
  • Clamped无弹性的,在限定的氛围内移动
  • Visibillty(可见性)
  • Permanent常驻,就是这个滑动条一直都在。
  • Auto Hide自动隐藏
  • Auto Hide And Expand Viewport自动隐藏并且填充。

Dropdown(下拉框)

模板: Template
模板的就像预制体可以以它复制其它的部分
Alpha Fade Speed
  • 阿尔法衰减通道,作用是在选择下拉菜单的时候菜单的显示隐藏的渐变时间。
Options
  • 选项,是下拉框的选项,在这里添加,删除或赋值下拉框的选项。

Input field:输入框

输入框在日常项目的制作中常常使用,熟练的使用每一个参数可以提高项目的制作效率,输入类型限制了输入的参数,可以修改输入类型满足不同的需求

Content Type(内容类型):

  • Standard: 标准的可以输入任意字符
  • Autocorrected: 可以自动更正用户的输入
  • Integer Number: 只允许输入整数
  • Decimal Number: 小数,允许输入数字和小数点后一位
  • Alphanumeric: 允许字母和数字,不允许输入符号
  • Name: 名字,自动将每个单词的首字母大写
  • Email Address: 电子邮件地址,允许输入包含 @ 的字母数字字符串
  • Password: 可以输入任何字符,会用‘ * ’隐藏
  • Pin: 仅为整数,会用‘ * ’隐藏
  • Custom: 自定义类型,输入类型,默认键盘类型,字符验证
  • Single Line 输入的内容是一条直线不会换行
  • Multi Line Submit 输入的内容可以换行,按回车结束
  • Multi Line Newline 输入的内容可以换行,按回车换行

Horizontal Layout group(横向对齐)

  • Spacing 元素之间的间距
  • Reverse arrangement 反转排序
  • Control child size: 控制子物体的大小,勾线后就不可以修改子物体的大小,由父物体统一控制
  • Use child size 考虑子物体大小对物体的排序的影响
  • Child force expand 是否填充满,会根据大小平均分配

Vertical Layout group(纵向对齐)

参数同横向排列。
注意点 control child size child force expand 必须成对出现,不然会出现 UI 消失的情况,(自动 UI 的长或者宽变成 0 ,在 UI 上就显示不出来)

Grid layout Group(网格排序)

Constraint :自定义排列
  • Flexible 没有限制的,自动排序
  • Fixes column count 横向设定有多少列
  • Fixes row count 纵向设定有多少行
网格排序在功能上可以替代横向和纵向排序,在实际的项目制作中网格排序也应用的很常见。

Layout Element (布局元素)

  • Flexible Height 给在一个网格排序的组下,按照比例进行高度缩放,比例是参数的大小
  • Flexible Width 给在一个网格排序的组下,按照比例进行宽度缩放,比例是参数的大小
注意事项:在勾线最小高度或者宽度的时候,勾线 child force expand 会出现在显示原本的 UI 在最小高度的情况下再平分。

Aspect ratio fitter(横竖比值)

  • Width controls Height: 宽高适配,根据宽度设置高度,高度不可修改
  • Height Controls Width: 宽高适配,根据高度设置宽度,宽度不可修改
  • Fit In Parent: 图像不会超过父物体,限制在父物体内。
  • Emvelope Parent: 根据宽高比完全覆盖父物体。

Content size fitter(内容尺寸适配)

  • Unconstrained 不做任何适配
  • Min size 根据最小值大小适配
  • Perferred size 根据初始值大小适配
小技巧:可以应用在文本输入框中,会自动适配文本大小,将显示不出来的文字显示出来,实现对应的需求。

作者的一点废话:

 Unity UGUI要想熟练使用,还是得经常的去做各种练习,熟能生巧嘛,现在记不到各种参数也没关系,记住常用的就行,有些生僻的参数确实在实际的项目中也不一定用的到,想不起来就回来查查嘛,之后有新的更新,我会更新这篇文章(先把坑埋这里,后面来填),觉得有用的话就点个赞吧( ´・∀・`)


日志:

2024/4/19 19:28  //基础文章初版上传

2024年5月13日 21:53//添加unity入门篇总目录
  • 31
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值