【Unity3D】UGUI之Dropdown
1 Dropdown属性面板
在 Hierarchy 窗口右键,选择 UI 列表里的 Dwondown (下拉列表)控件,即可创建 Dwondown 控件,选中创建的 Dwondown 控件,按键盘【T】键,可以调整 Dwondown 控件的大小和位置。

创建 Dwondown 控件时,系统会自动为其创建一系列控件,如下:

Dropdown 控件的属性面板如下:

说明:Options 中可以增删选项,并且可以给每个选项添加不同背景图片,也可以通过如下方式增删选项:
Dropdown dropdown = GetComponent<Dropdown>();
// 增加选项
dropdown.options.Add(new Dropdown.OptionData("Four"));
// 删除选项
dropdown.options.Remove(dropdown.options[2]);
2 Dropdown 注册事件
点击 OnValueChanged 下面的 “+” 号,可以为下拉列表添加响应事件,可以添加多个事件。
1)注册已有组件的方法
点击 OnValueChanged 下面的 “+” 号,将 Dropdown 下面的 Label 拖拽到 OnValueChanged 面板里,选择 GameObject.name,下方文本设置 "Text",如下:

切换下拉列表的选项,Label 会重命名为 “Text”,如下:

2)注册脚本组件里面的方法
给 Dropdown 控件添加 DropdownController 脚本组件如下:
SliderController.cs
using UnityEngine;
public class DropdownController : MonoBehaviour {
public void OnDropdown1() {
Debug.Log("Dropdown1");
}
public void OnDropdown2(string msg) {
Debug.Log("Dropdown2, msg=" + msg);
}
public void OnDropdown3(int index) {
Debug.Log("Dropdown3, index=" + index);
}
}
注意:待注册的方法,最多只能提供 1 个参数, 当参数为 int 类型时,入参表示选择的选项序号(index)。
点击 OnValueChanged 下面的 “+” 号,将 DropdownController 脚本组件拖拽到 OnValueChanged 面板里,选择 DropdownController.OnDropdown1 方法;再点击 OnValueChanged 下面的 “+” 号,将 DropdownController 脚本组件拖拽到 OnValueChanged 面板里,选择 DropdownController.OnDropdown2 方法,其下方输入"xxxx";点击 OnValueChanged 下面的 “+” 号,将 DropdownController 脚本组件拖拽到 OnValueChanged 面板里,选择 DropdownController.OnDropdown3 方法。如下:

切换下拉列表的选项,打印日志如下:

3)代码里注册事件
给 Dropdown 控件添加 DropdownController 脚本组件如下:
DropdownController.cs
using UnityEngine;
using UnityEngine.UI;
public class DropdownController : MonoBehaviour {
private void Start() {
Dropdown dropdown = GetComponent<Dropdown>();
dropdown.onValueChanged.AddListener(OnValueChanged);
}
public void OnValueChanged(int index) {
Debug.Log("OnValueChanged, index=" + index);
}
}
注意:AddListener 方法里只能添加入参为 int 类型的方法,可以添加多个方法。
切换下拉列表的选项,打印日志如下:

声明:本文转自【Unity3D】UGUI之Dropdown
【Unity3D】UGUI之Dropdown的更多相关文章
- Unity3d UGUI 通用Confirm确认对话框实现(Inventory Pro学习总结)
背景 曾几何时,在Winform中,使用MessageBox对话框是如此happy,后来还有人封装了可以选择各种图标和带隐藏详情的MessageBox,现在Unity3d UGui就没有了这样的好事情 ...
- UGUI 中Dropdown控件的使用经验
UGUI 中Dropdown控件的使用经验 在Untiy的UGUI 刚出来的时候,是没有“下拉列表”(Dropdown)控件的,这在无形中给我们的UI界面开发带来困难,不过在Untiy5.2.2之后这 ...
- Unity3D UGUI下拉菜单/Dropdown组件用法、总结
Unity3D中UGUI实现下拉菜单 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- ...
- Unity3D UGUI之ScrollView弹簧效果
unity3d版本5.3.2p4 UGUI中ScrollView包含Viewport(Content) ScrollView包含脚本.其Movement Type一共3个选项.Elastic就是弹簧效 ...
- Unity3d uGUI适配
Cavas: 1.Render Model设置为:Screen Space- Camera.如果想在UI前面加特效我可以在创建一个摄像机(UIForward)深度大于这个UICamera就行了. 2. ...
- Unity3D UGUI学习系列索引(暂未完成)
U3D UGUI学习1 - 层级环境 U3D UGUI学习2 - Canvas U3D UGUI学习3 - RectTransform U3D UGUI学习4 - Text U3D UGUI学习5 - ...
- Unity3D UGUI窗口拖拽
在开发UGUI时 我们时常需要做一个窗口拖拽的功能 先上代码 using UnityEngine; using UnityEngine.EventSystems; public class DragW ...
- Unity3D UGUI强制刷新Layout(布局)组件
UGUI的Layout布局组件确实节省了我们很多代码 如果不使用Layout组件 那么光在计算UI的布局上就要花费很大的功夫 特别是动态生成其组件的时候 当然,Layout组件在大多数时候是非常好用的 ...
- Unity3D UGUI实现Toast
项目中有些信息需要以Toast的形式体现出来,不需要交互,弹出后一段时间后消失,多个Toast会向上重叠,下面是一个UGUI Toast的实现,动画部份用到了Dotween来实现 首先需要制作Toas ...
- Unity3D — — UGUI之简易背包
Uinity版本:2017.3 最近在学Siki老师的<黑暗之光RPG>教程,由于教程内用的是NGUI实现,而笔者本人用的是UGUI,所以在这里稍微写一下自己的实现思路(大致上和NGUI一 ...
随机推荐
- 小程序:Now you can provide attr `wx:key` for a `wx:for` to improve performance. 的解决方案
在wx:for后面添加wx:key="key" 可消除警告 <view wx:for="{{thisWeekMovies}}" wx:for-index= ...
- 03-MySQL字段的数据类型
前言 MySQL 中的字段,主要有四种数据类型: 整型(整数) 小数 字符串类型 时间日期类型 下面来详细讲一讲. 整数类型 整数类型的分类 MySQL中,整型有五种: 迷你整型:tinyint,使用 ...
- Redis-逻辑库-select
- 使用JavaStream将List转为Map
有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准https://blog.zysicyj.top 首发博客地址 系列文章地址 使用Java Stream将List转换为Map ...
- [转帖]PostgreSQL数据加载工具之pg_bulkload
https://www.jianshu.com/p/b576207f2f3c 1. pg_bulkload介绍 PostgreSQL提供了一个copy命令的便利数据加载工具,copy命令源于Postg ...
- [转帖]Jmeter笔记:使用Jmeter向kafka发送消息
https://www.cnblogs.com/daydayup-lin/p/14124816.html 日常工作中有时候需要向kafka中发送消息来测试功能或者性能,这时候我们怎么办呢?我之前是自己 ...
- 使用smem 计算Oracle用户下内存占用情况.
1. 本来计划使用 ps 命令进行查看, 但是发现ps 最多查询出来的是 RSS的内存数据, 会多添加很多冗余的内存数据量进来, 于是作罢 2. 找了下公司的方神, 说可以使用smem 然后简单看了下 ...
- SQLSERVER2008R2 本地客户端无法连接的问题
sqlserver 数据库无法连接问题. 1. 问题现象与简单分析 今天同事找我说一个 SQLSERVER2008R2的测试环境无法连接了. 提示信息为: 当时猜测是 数据库的 配置出问题了. 去查看 ...
- 人均瑞数系列,瑞数 4 代 JS 逆向分析
声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容.敏感网址.数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 本文章未经许 ...
- Python 潮流周刊#22:Python 3.12.0 发布了!!
你好,我是猫哥.这里每周分享优质的 Python.AI 及通用技术内容,大部分为英文.标题取自其中一则分享,不代表全部内容都是该主题,特此声明. 本周刊由 Python猫 出品,精心筛选国内外的 25 ...