【精选】【Unity3D

您所在的位置:网站首页 下拉列表添加点击事件 【精选】【Unity3D

【精选】【Unity3D

2023-11-06 01:38| 来源: 网络整理| 查看: 265

推荐阅读

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”: 在这里插入图片描述 在Hierarchy视图中可以查看Dropdown的层级结构: 在这里插入图片描述

对象介绍Label显示初始化的文字Arrow显示初始化的下拉箭头TemplateDropdown的模板样式Item Background每一个Item的背景图片Item Checkmark每一个Item的下拉框图片Item Label每一个Item的文字显示内容Scrollbar下拉框

其中Item Background 背景图片和Item Checkmark下拉框图片的图片资源可以修改。

三、Dropdown 下拉菜单组件属性

接下来,我们来看一下Dropdown下拉菜单的属性面板: 在这里插入图片描述

属性介绍Interactable是否启动组件Transition过渡方式,跟Button类似Navigation导航,跟Button类似TemplateDropdown的模板样式,生成的选项都是这个样式Caption Text下拉列表首选项的文字显示,可用代码调用获取Caption Image下拉列表首选项的图片显示,可用代码调用获取Item Text每个Item的文字显示Item Image每个Item的图片显示Value会随着Dropdown选择的选项不同而变化Options下拉菜单的选项列表On Value Changed添加监听事件,当Value值变化后,监听事件响应

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); }

在这里插入图片描述 删除节点前: 在这里插入图片描述 删除节点后:

在这里插入图片描述

4-3、添加监听事件

使用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