Unity 下拉列表OnValueChanged
unity UGUI下拉列表中,以TMP_Dropdown为例,当默认值为0时,点击第一个选项,点击事件并不会响应,然而在某些特定情况下,我们需要在DropDown的Value字段值不变化时,点击也会响应事件,这样我们就需要重写TMP_DropDown。
代码如下
using TMPro;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
public class DBDropDown : TMP_Dropdown, IPointerClickHandler
{
public bool Call = true;//是否开启 点击选项按钮总是回调
protected override void Awake()
{base.Awake();template = transform.Find("Template").GetComponent<RectTransform>();captionText = transform.Find("Label").GetComponent<TMP_Text>();itemText = transform.Find("Template/Viewport/Content/Item/Item Label").GetComponent<TMP_Text>();
}public void MyShow()
{Show();Transform toggleRoot = transform.Find("Dropdown List/Viewport/Content");Toggle[] toggleList = toggleRoot.GetComponentsInChildren<Toggle>(false);for (int i = 0; i < toggleList.Length; i++){Toggle temp = toggleList[i];temp.onValueChanged.RemoveAllListeners();// temp.isOn = false;int index = i;temp.onValueChanged.AddListener(x => OnSelectItemEx(x,index,temp));}
}public override void OnPointerClick(PointerEventData eventData)
{MyShow();
}public void OnSelectItemEx(bool ison, int index,Toggle t)
{if (!ison){if (value == index && Call){// onValueChanged.Invoke(value);t.isOn = true;}captionText.text = options[value].text;return;}captionText.text = options[value].text;if (value == index && Call)onValueChanged.Invoke(value);elsevalue = index;Hide();
}
}
其中Show和Hide函数是显示与隐藏下拉选项的UI
Unity 下拉列表OnValueChanged相关推荐
- unity3D 初学者的个人总结
个人经验总结(预防bug) 1.unity里面导入包时注意路径不要出现中文符号,否则出现 Error while importing package: Couldn't decompress p ...
- Unity 开发总结之onValueChanged事件
Unity UGUI中很多可以改变内容或状态的控件都有onValueChanged事件,虽然绑定该事件的目的相同但具体的触发机制却不尽相同,下面是自己测试总结出的结果 Dropdown,Toggle控 ...
- 【Unity游戏开发基础】如何在游戏菜单中实现下拉列表选择画面质量
[背景] 上一篇我们介绍了如何在菜单中创建调节音量大小的滚动条,现在我再来介绍一个游戏菜单中的常用设置,也就是下拉列表选择画面质量的功能如何实现. [步骤] 首先,在菜单UI Canvas上添加一个下 ...
- Unity UGUI Toggle监听onValueChanged
一直以为下面代码是监听toggle点击的...其实不是,他是用来监听 isOn 值的改变的,真的好坑.. Toggle.onValueChanged.AddListener((bool value) ...
- Unity UI 框架
开源地址: GitHub - NRatel/NRFramework.UI: 基于 Unity UGUI 的 UI 开发框架基于 Unity UGUI 的 UI 开发框架. Contribute to ...
- Unity之UGUI详解
UGUI 文章目录 UGUI 六大基础组件概述 Canvas对象上依附的: Canvas Canvas Scaler Graphic Raycaster RectTransform EventSyst ...
- 【Unity】Dropdown下拉按钮的一些基本操作 获取值与添加选项
自己的老帖子,移植过来 原地址: http://www.manew.com/home.php?mod=space&uid=95681&do=blog&view=me&f ...
- Unity 之 UGUI Dropdown组件使用简析
Unity 之 UGUI Dropdown组件使用简析 官方释义 示例展示 代码操作 官方源码 官方释义 官方文档:https://docs.unity3d.com/Manual/script-Dro ...
- Unity 的 UGUI 组件Dropdown简析
Dropdown设置属性 Unity 会自动帮我们创建一个下拉菜单的模板.并且添加好 Dropdown 组件. 我们需要做的就是,设置我们需要的属性.以及功能即可 将我们的脚本.需要的选择项.UI选项 ...
最新文章
- git 常用操作总结
- 类和对象—对象特性—const修饰成员函数
- 苹果x有android文件夹,iPhone没有文件管理器这点,却让安卓手机羡慕!
- 员工需签军令状放弃年终奖?传小米推出特殊激励计划 官方回应...
- DSP28335看门狗复位
- 无线网络监控服务器怎么,无线监控系统如何安装?
- 任正非:无法退休的老人
- 485的信号测试软件,RS485通信测试项目中的压力测试方法、原理及基本测试模型...
- 通过scheme协议启动app
- 到2020年,将有60%的工作会被人工智能取代?
- VideoSolo Blu ray Player for Mac(mac蓝光播放器)
- 矩阵求和 c语言 简单易懂
- 2022-2027年中国肺炎疫苗行业市场运行现状及投资战略研究报告
- 【Ubuntu】 解决中文输入问题 --- 安装搜狗拼音输入法
- lisp中getkword输入默认_Lisp: 我不是为了 (zhuang) 宏(bi),我只是为了(ke)读(du)取(xing)...
- 年终绩效评价填写的意见与参考
- 使用ffmpeg视频切片并加密和视频AES-128加密后播放
- Python 使用 win32com 模块对 word 文件进行操作
- python机器人编程教程入门_机器人操作系统(ROS)入门必备:机器人编程一学就会...
- license控制服务器修改时期,license.dat授权替换方式
热门文章
- 将一个文件夹拖入MyEclipse的时候,提示destination folder must be accessible
- 教你分析快递揽收后,第二条物流是否超过12小时
- nmbd samba中文
- 为什么被证明“拖后腿”的苹果Mini手机,仍然还会再次发布新款?
- Deep Representation Learning for Trajectory Similarity Computation
- 虚拟化桌面设备输入法
- linux vmware文件互传,Linux与Windows文件互传(VMWare)
- 绿卡日记:2020-11-20
- 3秒钟解决windows字符间距变大,输入字母间距变大问题
- macOS_Catalina_10.15.7_19H15可引导可虚拟机安装的纯净版苹果OS系统ISO镜像安装包免费下载