第四十二章 Unity 下拉框 (Dropdown) UI
本章节我们介绍下拉框 (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
相关文章:
第四十二章 Unity 下拉框 (Dropdown) UI
本章节我们介绍下拉框 (Dropdown),我们点击菜单栏“GameObject”->“UI”->“Dropdown”,然后调整它的位置,效果如下 其实它的本质就是一个下拉列表,然后选择列表中的一个选项而已。大家在很多网页中应该可以看到类似的UI元…...
STL常用梳理——STACK、QUEUE
STL——适配器篇 1、ListSTL list 容器介绍list使用 2、适配器介绍3、Deque容器Stack、Queue适配器实现 1、List STL list 容器介绍 STL list 容器,又称双向链表容器,即该容器的底层是以双向链表的形式实现的。这意味着,list 容器中的元素可…...
Unity物理系统基本概念
前言:物理引擎仅仅是对现实物理的一种近似模拟。无论是从运算精度和时间连续性都不够准确。目的只是为了让游戏具备令人信服的物理表现,增强游戏的表现力和用户的沉浸感。 一、刚体Rigidbody 刚体是让物体产生物理行为的主要组件。一旦挂载了Rigidbody组…...
防止表单重复提交的几种方式,演示一个自定义注解方式的实现
防止表单重复提交的几种方式,演示一个自定义注解方式的实现 一、防止表单重复提交的几种方式方式一:Token 机制方式二:去重表(主要是利用 MySQL 的唯一索引机制来实现的)方式三:Redis 的 setnx方式四&#…...
《基于智能手机采集的PPG信号预测血管老化》阅读笔记
目录 一、论文摘要 二、论文十问 Q1: Q1论文试图解决什么问题? Q2: 这是否是一个新的问题? Q3: 这篇文章要验证一个什么科学假设? Q4: 有哪些相关研究?如何归类?谁是这一课题在领域内值得关注的研究员?…...
【大数据-调度工具】dolphinscheduler安装和遇到的问题
1.安装 安装步骤按照官网安装即可 官网:DolphinScheduler | 文档中心 (apache.org) 版本:3.1.5 2.踩坑记录 Q1.大文件无法上传 问题描述: 在资源中心中上传文件选择完大文件夹之后,选择确认之后确认按钮转了几圈圈之后就没…...
滑动轨迹生成的思路和代码分享-测试可过极验 90%机率
如有技术侵权、可联系本人下架 由于极验采用人工智能的方式对滑动的轨迹进行的验证,因此如果我们比较随意的生成鼠标滑动轨迹基本是肯定被封的,因此我们要详细分析一下鼠标轨迹的规律, 通之前介绍的调试手段,手工滑动滑块,获取到鼠标滑动轨迹的集合数组如下: [[-37,-41…...
【Linux】项目自动化构建工具make/makefile
🏖️作者:malloc不出对象 ⛺专栏:Linux的学习之路 👦个人简介:一名双非本科院校大二在读的科班编程菜鸟,努力编程只为赶上各位大佬的步伐🙈🙈 目录 前言一、make/makefile的背景二、…...
【系分范文】论软件需求获取技术以及应用
目录 论题论题介绍论文要点理论素材准备范文摘要正文论题 论软件需求获取技术以及应用 论题介绍 软件需求是指用户对新系统在功能、行为、性能、设计约束等方面的期望。软件需求获取是一个确定和理解不同的项目干系人的需求和约束的过程。需求获取是否科学、准备充分,对获取…...
vue2.0中post请求
vue2.0中post请求 三种格式:在vue中axois的用法:1、 multipart/form-data类型2、 x-www-form-urlencoded类型3、 application/json类型 三种格式: ○ Content-Type:x-www-form-urlencoded ○ Content-Type:multipart/form-data ○ Content…...
MySQL双写缓冲区(Doublewrite Buffer)
本文已收录至Github,推荐阅读 👉 Java随想录 文章目录 摘要为什么需要Doublewrite BufferDoublewrite Buffer原理Doublewrite Buffer相关参数总结 摘要 InnoDB是MySQL中一种常用的事务性存储引擎,它具有很多优秀的特性。其中,Dou…...
免费开源的Umi-OCR 文字识别工具
大家好,我是小寻,欢迎关注公众号:工具优选,免费领取优质项目源码和常用工具,还可以加入我的交流群! 如今,在日常生活和工作中,我们经常需要捕捉屏幕截图并识别其中的文本信息。比如别人给你发资料时直接发…...
如何让微信小程序弹窗滚动条设置在最上面
最近发现一个事情搞得很烦,微信小程序的弹窗内容可以滚动的时候,要保证每一次打开都在最上面,研究了一下终于发现了怎么解决 第一步 首先得把你的弹窗里面的内容用scroll-view标签包起来,像这样 <scroll-view style"hei…...
c语言-指针
指针详解 这段时间在看 Linux内核,深觉C语言功底不扎实,很多代码都看不太懂,深入学习巩固C语言的知识很有必要。先从指针开始。 什么是指针 C语言里,变量存放在内存中,而内存其实就是一组有序字节组成的数组&…...
Jenkins集成SonarQube实现代码质量检查
文章目录 一、前提配置1.1 安装及配置SonarQube Scanner插件1.2 配置SonarQube servers 二、非流水线集成SonarQube1.1 配置非流水线任务 三、流水线集成SonarQube 一、前提配置 1.1 安装及配置SonarQube Scanner插件 (1) 点击【系统管理】>【插件管理】>【可选插件】搜…...
2023 谷歌I/O发布会新AI,PALM 2模型要反超GPT-4,一雪前耻!
文章目录 1 前言2 Google I/O 发布者大会3 PaLM 2模型3 Bard项目4 其他AI工具4.1 AI 图片编辑 Magic Editor4.2 Duet AI 办公4.3 Universal Translator 翻译工具4.4 Google 沉浸式导航4.5 Google 搜索引擎 5 讨论 1 前言 每年必看两大会,苹果发布会和谷歌发布会&am…...
MySQL和Redis如何保证数据一致性?
前言 由于缓存的高并发和高性能已经在各种项目中被广泛使用,在读取缓存这方面基本都是一致的,大概都是按照下图的流程进行操作: 但是在更新缓存方面,是更新完数据库再更新缓存还是直接删除缓存呢?又或者是先删除缓存再…...
Markdown使用(超详细)
(HBuilderX) 掌握md及HBuilderX对md的强大支持。如果没有点右键设置自动换行,可按Alt滚轮横向滚动查看。 很多人只把markdown用于网络文章发表,这糟蹋了markdown。 markdown不止是HTML的简化版,更重要的是txt的升级版…...
yolov5实现扑克牌识别的产品化过程
文章目录 介绍项目下载硬件准备软件环境素材获取自行获取素材网盘获取图片标注模型训练窗口截图窗口截图(HWND)桌面截图wgc方法最终采用的方式WGC使用方法如何保存灰度图片python 如何加载dll库图片推理扑克牌逻辑ui编写模型加密软件授权软件加密软件打包安装包制作...
第07讲:Java High Level Client,读写 ES 利器
SkyWalking OAP 后端可以使用多种存储对数据进行持久化,例如 MySQL、TiDB 等,默认使用 ElasticSearch 作为持久化存储,在后面的源码分析过程中也将以 ElasticSearch 作为主要存储进行分析。 ElasticSearch 基本概念 本课时将快速介绍一下 E…...
c++如何通过文件映射mmap在多进程间实现高性能数据共享【进阶】
mmap 多进程共享必须用 MAP_SHARED,因其确保所有进程映射同一物理页并同步回文件;MAP_PRIVATE 为写时复制,修改不共享。需 O_RDWR 打开、ftruncate 预设大小,并配合适当同步机制。为什么 mmap 在多进程共享中必须用 MAP_SHARED 而…...
OpenMS终极指南:如何快速掌握专业质谱数据分析的完整方案
OpenMS终极指南:如何快速掌握专业质谱数据分析的完整方案 【免费下载链接】OpenMS The codebase of the OpenMS project 项目地址: https://gitcode.com/gh_mirrors/op/OpenMS 蛋白质组学、代谢组学、质谱数据分析、OpenMS开源平台、生物信息学工具 在生命科…...
美元、日元、欧元怎么选?外汇新手该从哪个货币对开始?
最近有不少刚接触外汇交易的朋友问我同一个问题:美元、日元、欧元这些主流货币到底该怎么选?作为一个过来人,我想说的是——选对起步品种,比你想象中重要得多。 很多新手一上来就想着“赚快钱”,直接冲进波动剧烈的交叉…...
观测云产品更新 | 场景、管理、监控、LLM 监测、用户访问监测等
观测云更新 付费计划与账单 1、针对中国香港及全球区,短信与电话分别新增定价。 2、新增数据点数的计费模式。 场景 1、图表查询 > 外部数据源查询:新增 #{step} 动态变量支持: 支持在查询语句中使用 #{step}作为 interval 占位符&a…...
3分钟搭建你的微信智能管家:零代码实现24小时自动回复
3分钟搭建你的微信智能管家:零代码实现24小时自动回复 【免费下载链接】WechatBot 项目地址: https://gitcode.com/gh_mirrors/wechatb/WechatBot 想要一个能帮你自动处理微信消息的智能助手吗?WechatBot微信机器人让你在3分钟内拥有一个全天候在…...
丝印层—PCB封装的信息标识系统
如果说焊盘是 PCB 封装的 “硬件骨架”,那么丝印层(Silkscreen) 就是封装的 “信息标识系统”,是 PCB 表面最直观的 “说明书”。一、丝印层的基础定义与特性丝印层,又称 “文字层”“标识层”,是 PCB 表…...
016、CI/CD流水线:用GitHub Actions把部署从玄学变成肌肉记忆
016、CI/CD流水线:用GitHub Actions把部署从玄学变成肌肉记忆 上周深夜,线上服务突然告警。紧急回滚时发现,测试环境通过的镜像在生产环境死活起不来。查了三个小时,最后发现是某位同事在Dockerfile里写死了测试数据库的IP。这种“…...
TA6585替代品6586直流双向电机驱动芯片详解
在电机驱动领域,芯片的性能、稳定性与适配性决定着设备的运行效果与使用寿命。6586作为TA6585的替代品,是一款高性能直流双向电机驱动芯片,凭借其小巧的封装、全面的保护功能及广泛的适配场景,替代TA6585,成为玩具、智…...
DeFi(去中心化金融)核心概念
**DeFi:重塑金融未来的去中心化革命** 在传统金融体系中,银行、交易所等中介机构掌控着资金流动与金融服务。随着区块链技术的崛起,一种全新的金融模式——去中心化金融(DeFi)正在颠覆这一格局。DeFi通过智能合约和去…...
m3u8视频下载终极指南:轻松获取加密流媒体内容的完整解决方案
m3u8视频下载终极指南:轻松获取加密流媒体内容的完整解决方案 【免费下载链接】m3u8_downloader 项目地址: https://gitcode.com/gh_mirrors/m3/m3u8_downloader 还在为无法保存在线视频而烦恼吗?m3u8_downloader项目为你提供了简单快速的解决方…...
