【精选】【Unity3D |
您所在的位置:网站首页 › 下拉列表添加点击事件 › 【精选】【Unity3D |
推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客QQ群:1040082875大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言首先,介绍一个UGUI,NGUI是UGUI的前身,Unity开发团队将NGUI的开发团队收到自己开发团队下,并且由此开发了UGUI。 UGUI系统是从Unity 4.6版本后才开始集成到Unity编辑器中。 UGUI的特点: 灵活快速可视化对于开发者来说有很多的优点,比如说: 效率高实现效果好易于使用和拓展与Unity编辑器的兼容性高这是本系列文章的第七篇: 【Unity3D-UGUI系列】(一)Canvas 画布组件详解 【Unity3D-UGUI系列】(二)Text文本组件详解 【Unity3D-UGUI系列】(三)Button 按钮组件详解 【Unity3D-UGUI系列】(四)Image 图片组件详解 【Unity3D-UGUI系列】(五)RawImage 显示纹理组件详解 【Unity3D-UGUI系列】(六)Panel 容器组件详解 【Unity3D-UGUI系列】(七)Dropdown 下拉菜单组件详解 【Unity3D-UGUI系列】(八)InputField 输入框组件详解 【Unity3D-UGUI系列】(九)Scrollbar 滚动条组件详解 【Unity3D-UGUI系列】(十)Slider 滑动条组件详解 【Unity3D-UGUI系列】(十一)Toggle 开关组件详解 【Unity3D-UGUI系列】(十二)ScrollView 滚动视图组件详解 二、Dropdown 下拉菜单组件介绍Dropdown 下拉菜单,可快速创建大量选择项,无需开发者自己写脚本实现。 首先,我们来新建一个Dropdown 下拉菜单,在Unity的Hierarchy视图中选择“Create→UI→Dropdown”: 其中Item Background 背景图片和Item Checkmark下拉框图片的图片资源可以修改。 三、Dropdown 下拉菜单组件属性接下来,我们来看一下Dropdown下拉菜单的属性面板: Dropdown下拉菜单的属性主要有两个方面,一个就是显示的标题的文字和图片,另一个就是Item的文字和图片。 然后就是Template 模板样式,这个样式决定了Dropdown的下拉菜单的列表的样式。 Dropdown 下拉菜单主要代码调用比较常见,下面就演示如何用代码构建Dropdown下拉菜单。 四、Dropdown 下拉菜单组件代码调用 4-1、初始化Dropdown初始化文字内容 using UnityEngine; using UnityEngine.UI; public class TestDropdown : MonoBehaviour { public Dropdown Drd_IPList; private void Start() { InitDropdown(); } private void InitDropdown() { //清空默认节点 Drd_IPList.options.Clear(); //初始化 Dropdown.OptionData op1 = new Dropdown.OptionData(); op1.text = "220.110.1.10"; Drd_IPList.options.Add(op1); Dropdown.OptionData op2 = new Dropdown.OptionData(); op2.text = "220.110.1.11"; Drd_IPList.options.Add(op2); Dropdown.OptionData op3 = new Dropdown.OptionData(); op3.text = "220.110.1.12"; Drd_IPList.options.Add(op3); } }
同时初始化文字和图片 using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class TestDropdown : MonoBehaviour { public Dropdown Drd_IPList; public List m_Sprite; List m_TextContent; Dropdown.OptionData m_TempData; private void Start() { AddTextContent(); InitDropdown(); } private void AddTextContent() { for (int i = 0; i //清空默认节点 Drd_IPList.options.Clear(); //初始化 for (int i = 0; i m_TempData = new Dropdown.OptionData(); m_TempData.text = "新添加的节点"; Drd_IPList.options.Add(m_TempData); }
删除节点: //删除节点 public void DelectItem() { //删除第一个节点 m_TempData = Drd_IPList.options[0]; Drd_IPList.options.Remove(m_TempData); }
使用Dropdown自带的监听事件: using UnityEngine; using UnityEngine.UI; [RequireComponent(typeof(Dropdown))] public class Drop : MonoBehaviour { private Dropdown drop; void Start() { drop = this.GetComponent(); drop.onValueChanged.AddListener(Change); } private void Change(int index) { Debug.Log(index); switch (index) { case 0: break; case 1: break; default: break; } }使用ISelectHandler接口进行事件监听: using UnityEngine; using UnityEngine.UI; using UnityEngine.EventSystems; public class Drop : MonoBehaviour,ISelectHandler { public Dropdown drop; private int lastIndex; public void OnSelect(BaseEventData eventData) { //避免点击下拉列表item和dropdown重复调用 if (drop.value == lastIndex) return; //处理逻辑 // Debug.Log("OnSelect=" + drop.value); lastIndex = drop.value; }在Dropdown面板中使用脚本监听: using UnityEngine; using UnityEngine.UI; public class TestDropdown : MonoBehaviour { public Dropdown Drd_IPList; //事件监听 public void EventListening() { switch (Drd_IPList.value) { case 0: Debug.Log(0); break; case 1: Debug.Log(1); break; case 2: Debug.Log(2); break; default: break; } } }Dropdown下面的On Value Changed增加方法: |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |