第四十二章 Unity 下拉框 (Dropdown) UI

news/2025/2/14 3:51:54/

本章节我们介绍下拉框 (Dropdown),我们点击菜单栏“GameObject”->“UI”->“Dropdown”,然后调整它的位置,效果如下

其实它的本质就是一个下拉列表,然后选择列表中的一个选项而已。大家在很多网页中应该可以看到类似的UI元素。我们在层次面板查看这个游戏对象

我们发现Dropdown这个UI元素的下面有“Label”,“Arrow”和“Template”三个子游戏对象。并且子游戏对象“Template”的下面继续拥有它的子游戏对象。根据名称,我们大致能够理解“Label”就是下拉框提示文本而已,“Arrow”就是那个箭头标识,而“Template”则是点击后的出现的下拉列表框(对应的数据就是一个数组)。我们继续查看它的检视面板

我们简单介绍一下这些属性。

Interactable 表示该UI元素是否接受输入。

Transition 表示该UI元素状态交换效果,默认值就是Color Tint颜色变化。

Target Graphic 表示该UI元素的Image组件,也就是使用图片作为下拉框的背景。

Normal Color 就是下拉框默认状态的颜色。

Highlighted Color 就是下拉框高亮颜色。

Pressed Color 就是下拉框点击时的颜色

Selected Color 就是下拉框选中时候的颜色

Disable Color 就是下拉框失效时候的颜色

Color Multiplier 则是颜色乘数值,默认1即可。

Fade Duration 则是下拉框颜色切换的时间(单位秒)。

Navigation和Visualize表示下拉框的导航设置,这里我们不设置。

Template 就是我们上面提到的“Template”子游戏对象(下拉列表)。

Caption Text 就是我们上面提到的“Lable”子游戏对象,就是下拉框默认提示文字。但是,一般情况下,下拉框会直接使用下拉列表中的第一个选项的文本。

Caption Image 可以使用图片来替换上面的“Lable”子游戏对象。

Item Text 就是下拉框点击后出现的条目的游戏对象。

Item Image 可以使用图片来替换上面的Item Text游戏对象。

Value 当前所选选项的索引。0 代表第一个选项,1 代表第二个,依此类推。默认值是0,就表示下拉框默认使用下拉列表中的第一个选项。

Alpha Fade Speed 就是下拉框淡进淡出的时间。

Options 表示下拉列表,它的本质就是一个数组。可为每个选项指定一个文本字符串或一个图像,也就是对应数组中的一个元素。我们这里使用文本字符串即可,如下所示

当然,我们还可以使用“+”添加新的列表选项。

使用代码来手动修改下拉框的选项。

    // 下拉框元素上的 Dropdown 组件private Dropdown dropDown;void Start(){// 获取输入框UI元素上面的 InputField 组件inputField = GameObject.Find("InputField").GetComponent<InputField>();// 获取下拉框元素上的 Dropdown 组件dropDown = GameObject.Find("Dropdown").GetComponent<Dropdown>();var options = dropDown.options;options.Add(new Dropdown.OptionData("杭州"));options.Add(new Dropdown.OptionData("南京"));dropDown.options = options;}

最终的效果如下所示

接下来,我们继续说一下下拉框的事件。

对于下拉框而言,它能够接受的事件为On Value Changed事件,我们可以使用一个方法来处理这个事件,在这个事件方法中,我们打印出下拉框 (Dropdown),也就是数组下标。

    public void testDropdownChange(){Debug.Log("DropdownChange:" + dropDown.value);}

接下来,我们添加上面的testDropdownChange方法到事件中

接下来,我们就可以运行整个工程查看下拉框的效果了。

当我们从第一个“北京”(Value=0)切换到第二个“上海”(Value=1)的时候

我们的控制台也输出了下拉框 (Dropdown)的Value值就是 1。

当我们再次切换第三个“广州”的时候,控制台就会输出 2。

本课程涉及的内容已经共享到百度网盘:https://pan.baidu.com/s/1e1jClK3MnN66GlxBmqoJWA?pwd=b2id


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

相关文章

Optional的使用详解

工作中经常会调外部接口、或者查询表等&#xff0c;如果对返回结果不进行空指针判断的话就会导致空指针异常。针对这种情况经常会使用if进行判断: private boolean isNotNull(Object param) {if (param null) {return false;} else {return true;}}这样写其实功能上没有任何问…

数据结构 -- 共用体Union

在数据结构 -- 结构体Struct一文中详细介绍了结构体的定义以及内存对齐。在C语言中&#xff0c;还有另外一种和结构体非常类似的语法&#xff0c;叫做共用体&#xff08;Union&#xff09;&#xff0c;也称为联合体。它的定义格式为&#xff1a; union 共用体名{成员列表 };1. …

Alibaba技术官熬夜肝出的,Kafka “限量笔记” 牛掰 ~

前言 分布式&#xff0c;是程序员必备技能之一&#xff0c;在面试过程中属于必备类的&#xff0c;在工作中更是会经常用到。而Kafka是一个分布式的基于发布订阅的消息队列&#xff0c;目前它的魅力是无穷的&#xff0c;对于Kafka的奥秘&#xff0c;还需要我们细细去探寻。 要…

Echarts实现伪3D地图 + 自定义标准的实现小记

仅作为记录&#xff0c;欢迎参考&#xff0c;不喜勿喷 <template><v-chart :option"option" autoresize></v-chart> </template><script> import { mapState } from vuex; import { use, registerMap } from echarts/core; import { …

系统运维(Git篇)

Git基础 Git Git是一种分布式版本控制系统&#xff0c;可以帮助我们管理代码的版本和变更。通过学习Git&#xff0c;我们可以更好地理解版本控制的原理和应用&#xff0c;同时也可以掌握Git的使用和管理技巧。 Docker Docker是一种容器化平台&#xff0c;可以将应用程序及其依赖…

Go语言中的流程控制语句

目录 流程控制语句 if语句 ifelse语句 switch语句 for循环 break语句 continue语句 goto语句 流程控制语句 if语句 在Go语言中&#xff0c;可以在if后面加上一段执行语句&#xff0c;执行语句也可以用作对if条件的判断。它的语法格式为&#xff1a; if a : conditio…

随笔-听说你年入百万了

两个月前接到老代的电话&#xff0c;说4月30号结婚&#xff0c;预约一下时间。半个月前接到小付的电话&#xff0c;说5月1号结婚&#xff0c;行吧&#xff0c;值当回趟老家了。 抢票还算顺利&#xff0c;转了一趟车&#xff0c;29号下午到了老家&#xff0c;想着收拾一下&…

体验 gpt4free

体验 gpt4free 什么是 gpt4free效果演示安装 ffmpeg启动 gpt4free访问 gpt4free gui其他 什么是 gpt4free GPT4Free 是一个由 xtekky 创建的基于 OpenAI GPT-4 和 GPT-3.5 的 API。它可以向用户提供类似于 OpenAI GPT-3 的功能&#xff0c;如文本生成、问答、翻译等。 GPT4Fre…