Unity UGUI4——组合控件

news/2024/10/30 9:31:33/

一、Button

​ Button 是按钮组件,是 UGUI 中用于处理玩家按钮相关交互的关键组件

​ 默认创建的 Button由 2 个对象组成
​ 父对象——Button 组件依附对象,同时挂载了一个 Image 组件作为按钮背景图
​ 子对象——按钮文本 Text(可选)

(一)参数介绍

  1. Interactable:是否接收输入

    若不勾选,则表示被禁用,对应显示为 Disable

  2. Transition:响应用户输入的过渡效果

    • None:没有状态变化效果

    • Color Tint:用颜色表示不同状态的变化

      • TargetGraphic:控制的目标图形
      • Normal Color:正常状态的颜色
      • Highlighted Color:鼠标进入时的高亮颜色
      • Pressed Color:按下时的颜色
      • Selected Color:选中时的颜色
      • Disable Color:禁用时的颜色
      • Color Multiplier:颜色倍增器,过渡颜色乘以该值,一般不改变
      • FadeDuration:衰减持续时间,从一个状态进入另一个状态时需要的时间
    • Sprite Swap:用图片表示不同状态的变化

      • Normal Sprite:正常状态的图片
      • Highlighted Sprite:鼠标进入时的图片
      • Pressed Sprite:按下时的图片
      • Selected Sprite:选中时的图片
      • DisableSprite:禁用时的图片
    • Animation:用动画表示不同状态的变化

      • Normal Trigger:正常动画触发器
      • Highlighted Trigger:鼠标进入状态时的触发器
      • Pressed Trigger:按下时触发器
      • Selected Trigger:选中时触发器
      • DisableTrigger:禁用时触发器
      • Auto Generate Animation:Unity 将自动生成一系列触发器,减少我们的操作步骤
  3. Navigation:导航模式,可以设置 UI 元素如何在播放模式中控制器导航

    • None:无键盘导航
    • Horizontal:水平导航
    • Vertical:垂直导航
    • Automatic:自动导航
    • Explicit:指定周边控件进行导航
    • Visualize:Scene 场景中显示导航

  1. Onclick:单击(按下再抬起)执行的函数列表

(二)代码控制

Button btn = this.GetComponent<Button>();
btn.interactable = true;
btn.transition   = Selectable.Transition.None;Image img = this.GetComponent<Image>();

(三)监听点击事件的两种方式

​ 点击事件是在按钮区域抬起按下一次,就算一次点击

  1. 拖 GameObject

    注意,只能关联对象的 public 函数

  2. 代码添加

btn.onClick.AddListener(ClickBtn);
btn.onClick.AddListener(() => { print("123123123"); });btn.onClick.RemoveListener(ClickBtn);
btn.onClick.RemoveAllListeners();

二、Toggle

​ Toggle 是开关组件,是 UGUI 中用于处理玩家单选框、多选框相关交互的关键组件,默认是多选框

​ 可以通过配合 ToggleGroup 组件制作为单选框

​ 默认创建的 Toggle 由 4 个对象组成
​ 父对象——Toggle 组件依附
​ 子对象——背景图 Background(必备)、选中图 Checkmark(必备)、说明文字 Label(可选)

(一)参数介绍

  1. Interactable:是否接收输入

    若不勾选,则表示被禁用,对应显示为 Disable

  2. Transition:同 Button 组件

  3. Navigation:同 Button 组件

  4. Is On:当前是否处于打开状态

  5. Toggle Transition:在开关变化时的过渡方式

    • None:无任何过渡,直接显示隐藏
    • Fade:淡入淡出
  6. Graphic:用于表示选中状态的图片

  7. Group:单选框分组

    • Allow Switch Off:是否允许不选中任何一个单选框
  8. OnValueChanged:开关状态变化时执行的函数列表

(二)代码示例

Toggle tog = this.GetComponent<Toggle>();
tog.isOn = true;
print(tog.isOn);ToggleGroup togGroup = this.GetComponent<ToggleGroup>();
togGroup.allowSwitchOff = false;// 可以遍历提供的迭代器 得到当前处于选中状态的 Toggle
foreach (Toggle item in togGroup.ActiveToggles())
{print(item.name + " " + item.isOn);
}

(三)监听点击事件的两种方式

  1. 拖 GameObject
  2. 代码添加
tog.onValueChanged.AddListener(ChangeValue);
tog.onValueChanged.AddListener((b) => { print("代码监听 状态改变" + b); });public void ChangValue(bool isOn)
{print("状态改变" + isOn);
}    

三、InputField

​ InputField 是输入字段组件,是 UGUI 中用于处理玩家文本输入相关交互的关键组件

​ 默认创建的 InputField 由 3 个对象组成
​ 父对象——InputField 组件依附对象,以及同时在其上挂载了一个 Image 作为背景图
​ 子对象——文本显示组件 Text(必备)、默认显示文本组件Placeholder(必备)

(一)参数介绍

  1. Interactable:是否接收输入

    若不勾选,则表示被禁用,对应显示为 Disable

  2. Transition:同 Button 组件

  3. Navigation:同 Button 组件

  4. TextComponent:用于关联显示输入内容的文本组件

  5. Text:输入框的起始默认值

  6. Character Limit:可以输入字符长度的最大值

  7. Content Type:输入的字符类型限制

    • Standard:标准模式,可以输入任何字符

    • Autocorrected:自动更正模式,跟踪未知单词,向用户建议合适的替换候选词

    • Integer Number:整数模式,用户只能输入整数

    • Decimal Number:十进制数模式,用户只能输入数组,包括小数

    • Alphanumeric:字母数字模式,只能输入字母或数字

    • Name:名字模式,自动将每个单词首字母大写

    • Email Address:邮箱地址模式,最多允许输入一个 @ 符号组成的字符和数字字串

    • Password:密码模式,用星星隐藏输入的字符,允许使用符号

    • Pin:别针模式,用星星隐藏输入的字符,只允许输入整数

    • Custom:自定义模式,允许自定义行类型,输入类型,键盘类型和字符验证

  8. Line Type:行类型,用于定义文本格式

    • Single Line:只允许单行显示

    • Multi Line Submit:允许使用多行,仅在需要时使用行的一行

    • Multi Line NewLine:允许使用多行,用户可以按回车键空行

  9. Placeholder:关联用于显示初始内容的文本控件

  10. Caret Blink Rate:光标闪烁速率

  11. Caret Width:光标宽度

  12. Custom Caret Color:自定义光标颜色

  13. Selection Color:批量选中的背景颜色

  14. Hide Mobile Input:隐藏移动设备屏幕上的键盘,仅适用于 IOS

  15. Read Only:只读,不可修改

(二)代码示例

InputField input = this.GetComponent<InputField>();
print(input.text);
input.text = "123123123123";

(三)监听点击事件的两种方式

  1. 拖 GameObject
  2. 代码添加
// 改变输入
input.onValueChanged.AddListener(ChangeInput);// 结束输入
// 按 Enter 或鼠标点击别处都算结束输入
input.onEndEdit.AddListener((str) => { print("代码监听 结束输入" + str); });public void ChangeInput(string str)
{print("改变的输入内容" + str);
}

四、Slider

​ Slider 是滑动条组件,是 UGUI 中用于处理滑动条相关交互的关键组件

​ 默认创建的 Slider 由 4 组对象组成
​ 父对象——Slider 组件依附的对象
​ 子对象——背景图 Background、进度图 Fill 、滑动块 Handle 三组对象

(一)参数介绍

  1. Interactable:是否接收输入

    若不勾选,则表示被禁用,对应显示为 Disable

  2. Transition:同 Button 组件

  3. Navigation:同 Button 组件

  4. Fill Rect:用于填充的进度条图形

  5. Handle Rect:用于滑动的滑块图形

  6. Direction:滑动条值增加的方向

    • Left To Right:从左到右
    • Right To Left:从右到左
    • Bottom To Top:从下到上
    • Top To Bottom:从上到下
  7. Min / Max Value:最大值和最小值

  8. Whole Numbers:是否约束为整数值变化

  9. Value:当前滑动条代表的数值

  10. OnValueChanged:滑动条值改变时执行的函数列表

(二)代码示例

Slider s = this.GetComponent<Slider>();
print(s.value);

(三)监听点击事件的两种方式

  1. 拖 GameObject
  2. 代码添加
s.onValueChanged.AddListener((v) => { print("代码添加的监听" + v); });

五、ScrollBar

​ Scrollbar 是滚动条组件,是 UGUI 中用于处理滚动条相关交互的关键组件

​ 默认创建的 Scrollba r由 2 组对象组成
​ 父对象——Scrollbar 组件依附的对象
​ 子对象——滚动块对象 Handle

​ 一般情况下我们不会单独使用滚动条 ,都是配合 ScrollView 滚动视图来使用

(一)参数介绍

  1. Interactable:是否接收输入

    若不勾选,则表示被禁用,对应显示为 Disable

  2. Transition:同 Button 组件

  3. Navigation:同 Button 组件

  4. Handle Rect:关联滚动块图形对象

  5. Direction:滑动条值增加的方向

    • Left To Right:从左到右
    • Right To Left:从右到左
    • Bottom To Top:从下到上
    • Top To Bottom:从上到下
  6. Value:滚动条初始位置值(0 ~ 1)

  7. Size:滚动块在条中的比例大小(0 ~ 1)

  8. Number Of Steps:允许可以滚动多少次(不同滚动位置的数量)

  9. OnValueChanged:滚动条值改变时执行的函数列表

(二)代码示例

Scrollbar sb = this.GetComponent<Scrollbar>();
print(sb.value);
print(sb.size);

(三)监听点击事件的两种方式

  1. 拖 GameObject
  2. 代码添加
sb.onValueChanged.AddListener(ChangeValue);public void ChangeValue(float v)
{print(v);
}

六、ScrollView

​ ScrollRect 是滚动视图组件,是 UGUI 中用于处理滚动视图相关交互的关键组件

​ 默认创建的 ScrollRect 由 4 组对象组成
​ 父对象——ScrollRect 组件依附的对象,还有一个 Image 组件作为背景图
​ 子对象:

  • Viewport 控制滚动视图可视范围和内容显示
  • Scrollbar Horizontal 水平滚动条
  • Scrollbar Vertical 垂直滚动条

(二)参数介绍

  1. Content:控制滚动视图显示内容的父对象

    Content 的尺寸有多大,滚动视图就能拖到多远

  2. Horizontal:启用水平滚动

  3. Vertical:启用垂直滚动

  4. Movement Type:滚动视图元素的运动类型

    主要控制拖动时的反馈效果

    • Unrestricted:不受限制,随便拖动(一般不用)
    • Elastic:回弹效果,当滚出边缘后,会弹回边界(常用)
      • Elasticity:回弹系数。值越大回弹越慢
    • Clamped:夹紧效果,始终限制在范围内,没有回弹效果
  5. Inertia:移动惯性

    如果开启,松开鼠标后会有一定的移动惯性

    • Deceleration Rate:减速率

      0 没有惯性,1 不会停止

  6. Scroll Sensitivity:滚轮(鼠标中键)和触摸板(笔记本)的滚动敏感性

  7. Viewport:关联滚动视图内容视口对象

  8. Horizontal / Vertical Scrollbar:关联水平 / 垂直滚动条,可删除

    • Visibility:可见模式
      • Permanent:一直显示滚动条(使用较少)
      • Auto Hide:自动隐藏滚动条
      • Auto Hide And Expand Viewport:自动隐藏滚动条并且自动拓展内容视口 Viewport
    • Spacing:滚动条和视口之间的间隔空间
  9. OnValueChanged:滚动视图位置时执行的函数列表

(二)代码示例

ScrollRect sr = this.GetComponent<ScrollRect>();// 改变内容的大小 具体可以拖动多少 都是根据它的尺寸来的
sr.content.sizeDelta = new Vector2(200, 200);// 改变显示的位置
sr.normalizedPosition = new Vector2(0, 0.5f);

(三)监听点击事件的两种方式

  1. 拖 GameObject
  2. 代码添加
// 很少使用
sr.onValueChanged.AddListener((vec) => { print(vec); });	

七、Dropdown

​ DropDown 是下拉列表(下拉选单)组件,是 UGUI 中用于处理下拉列表相关交互的关键组件

​ 默认创建的 DropDown 由 4 组对象组成
​ 父对象——DropDown 组件依附的对象 还有一个 Image 组件 作为背景图

​ 子对象:

  • Label 是当前选项描述
  • Arrow 右侧小箭头
  • Template 下拉列表选单

(一)参数介绍

  1. Interactable:是否接收输入

    若不勾选,则表示被禁用,对应显示为 Disable

  2. Transition:同 Button 组件

  3. Navigation:同 Button 组件

  4. Template:关联下拉列表对象

  5. Caption Text:关联显示当前选择内容的文本组件

  6. Caption Image:关联显示当前选择内容的图片组件

  7. Item Text:关联下拉列表选项用的文本控件

  8. Item Image:关联下拉列表选项用的图片控件

  9. Value:当前所选选项的索引值

  10. Alpha Fada Speed:下拉列表窗口淡入淡出的速度

    0 瞬间显示下拉列表,1 慢慢显示下拉列表

  11. Options:存在的选项列表

(二)代码示例

Dropdown dd = this.GetComponent<Dropdown>();print(dd.value);print(dd.options[dd.value].text);dd.options.Add(new Dropdown.OptionData("123123123"));

(三)监听点击事件的两种方式

  1. 拖 GameObject
  2. 代码添加
 s.onValueChanged.AddListener((index) => { print(index); });

http://www.ppmy.cn/news/452166.html

相关文章

台风怎么看内存颗粒_光威TYPE普通马甲内存条,南亚ADIE HR颗粒稳超3200MHZ

普条居然采用南亚A-DIE HR颗粒&#xff0c;光威TYPEα内存条稳超3200MHZ上次我们对光威深渊3000 16G DDR4 RGB游戏内存条进行了测试。 测试结果是&#xff1a;光威深渊3000 16G DDR4 RGB游戏内存条采用了南亚A-die GZ颗粒(DDR4-2400),超频至3333NHZ&#xff0c;稳定运行。 而…

c语言中rand()%900,c语言 n=rand()%5是什么意思

rand()函数会产生范围为0至32767的随机数&#xff0c;% 让它与5求余&#xff0c;变成0至4的随机数&#xff0c;不过每次启动程序产生的随机数都相等&#xff0c;在用srand(unsigned int)输入种子数后产生的才不一样&#xff0c;一般都用的 srand((unsigned int)time(NULL)) 产生…

A股各行业好公司览表

1、白酒行业&#xff1a; 贵州茅台、五粮液、泸州老窖、洋河股份、山西汾酒、古井贡酒 2、医药行业&#xff1a; 恒瑞医药、迈瑞医疗、药明康德、爱尔眼科、智飞生物、片仔癀、云南白药、长春高新、泰格医药、通策医疗、 华兰生物、天坛生物、康龙化成、健帆生物、凯莱英、欧普…

计算机转机械硬盘,机械硬盘空闲时却还狂转,到底为什么?

原标题&#xff1a;机械硬盘空闲时却还狂转&#xff0c;到底为什么&#xff1f; 在使用个人电脑(PC)时&#xff0c;可能大多数玩家都有几天不关电脑的习惯&#xff0c;甚至还有一些玩家十天半个月都不关电脑呢。我就是一例&#xff0c;“懒关电脑患者”。我们这类人的信仰就是&…

台风怎么看内存颗粒_普条居然采用南亚A-DIE HR颗粒,光威TYPEα内存条稳超3200MHZ...

普条居然采用南亚A-DIE HR颗粒&#xff0c;光威TYPEα内存条稳超3200MHZ 上次我们对光威深渊3000 16G DDR4 RGB游戏内存条进行了测试。 测试结果是&#xff1a;光威深渊3000 16G DDR4 RGB游戏内存条采用了南亚A-die GZ颗粒(DDR4-2400),超频至3333NHZ&#xff0c;稳定运行。 而…

z490 linux raid,PC硬件与外设 篇二十三:光威弈系列Pro Z490平台装机评测(含raid模式)...

PC硬件与外设 篇二十三&#xff1a;光威弈系列Pro Z490平台装机评测(含raid模式) 2020-06-16 09:53:51 0点赞 0收藏 0评论 创作立场声明&#xff1a;raid模式值得体验 存储颗粒与主控的国产化让国产SSD成为了现实&#xff0c;对我们用户来说是好事儿&#xff0c;不仅仅是多了一…

《大数据可视化》课后习题答案-何光威版

大数据可视化 本篇只包含部分简答 第一章 一、填空与选择题 1.数据可视化的主要作用包括___ 数据记录和表达_____、数据操作_____和____数据分析_ 三个方面&#xff0c;这也是可视化技术支持计算机辅助数据认知的三个基本阶段。 2.在医学可视化领域上要包含三方面的研究热点…

计算机终桌面操作系统,支持国产电脑操作系统,光威、中兴新支点桌面系统首次触电...

近年在电脑数码领域&#xff0c;国内国产化的呼声很高。我们也正见证了国产化的不断发展。在国产CPU、存储芯片、SSD、内存条、电脑操作系统方面&#xff0c;我们国内取得了长足的进步&#xff0c;正在向自主可控的最终目标坚实的迈进。 中兴在过去曾两度受到美国的制裁。最近一…