Unity DropDown 组件 详解

news2024/12/24 8:50:08

Unity版本 2022.3.13f1

Dropdown下拉菜单可以快速创建大量选项

一、 Dropwon属性详解

属性:功能:
Interactable此组件是否接受输入?请参阅 Interactable。
Transition确定控件以何种方式对用户操作进行可视化响应的属性。请参阅过渡选项。
Navigation确定控件顺序的属性。请参阅导航选项。
Template下拉列表的模板的矩形变换。请参阅以下说明。
Caption Text用于保存当前所选选项的文本的文本 (Text) 组件。(可选)
Caption Image用于保存当前所选选项的图像的图像 (Image) 组件。(可选)
Item Text用于保存列表项的文本的文本组件。(可选)
Item Image用于保存列表项的图像的图像组件。(可选)
Value当前所选选项的索引。0 代表第一个选项,1 代表第二个,依此类推。
Options可能选项的列表。可为每个选项指定一个文本字符串和一个图像。
On Value Changed用户单击了下拉列表中一个选项时调用的 UnityEvent。

二、创建下拉菜单

 首先我们来先创建一个下拉菜单 再Unity 的Hierarchy面板右键选择UI---->Dropdown - TextMeshPro

当然也可以选择Legacy里面的Dropdown 这里我们选择Dropdown-TextMeshPro

 下面是Dropdown在Hierarchy面板上的层次结构

我们增加一个背景到DropDown下面作为背景展示

三、下拉菜单组件代码调用

using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;

public class Test : MonoBehaviour
{
    public TMP_Dropdown m_Dropdown;
    public List<Sprite> m_Sprites;
    public List<string> m_TextTip;
    public int m_CreateTemp;
    private TMP_Dropdown.OptionData m_OptionData;
    private int lastIndex = 0;
    void Start()
    {
        InitDorpDown();
    }

    private void InitDorpDown()
    {
        m_Dropdown.options.Clear();
        for (int i = 0; i < m_CreateTemp; i++)
        {
            m_OptionData = new TMP_Dropdown.OptionData();
            m_OptionData.text = m_TextTip[i];
            m_OptionData.image = m_Sprites[i];
            m_Dropdown.options.Add(m_OptionData);
        }

        //设置默认显示
        m_Dropdown.captionText.text = m_TextTip[0];
        m_Dropdown.captionImage.sprite = m_Sprites[0];

        m_Dropdown.onValueChanged.AddListener(OnChanged);
    }

    private void OnChanged(int index)
    {
        if (index == lastIndex) return;
        lastIndex = index;
        Debug.Log(index);
    }
}

 外部引用挂载

四、实际测试效果 

这里是实际图片的问题上下有空白换成不留空白的图就好了

点击效果

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1499928.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

个人商城系统开源(展示宣传)

原文地址&#xff1a;个人商城系统开源&#xff08;展示宣传&#xff09; - Pleasure的博客 下面是正文内容&#xff1a; 前言 由于近期实在没有什么话题可写和一些有趣的项目教程可以分享。所以我只能决定将我自己亲手编写的一个迷你商城系统进行开源。 也就是放在我博客右边…

Unity UGUI之Scrollbar基本了解

Unity的Scrollbar组件是用于在UI中创建滚动条的组件之一。滚动条通常与其他可滚动的UI元素&#xff08;如滚动视图或列表&#xff09;一起使用&#xff0c;以便用户可以在内容超出可见区域时滚动内容。 以下是Scrollbar的基本信息和用法: 1、创建 在Unity的Hierarchy视图中右…

Android屏幕共享-硬编码硬解码

Android屏幕共享-硬编码硬解码 说起Android之间的屏幕共享&#xff0c;第一次接触会比较陌生&#xff0c;不过大家多少有了解过ffmpeg&#xff0c;看上去是不是很熟悉&#xff1f;ffmpeg是一套处理音视频的开源程序&#xff0c;但对于C了解较少的同学&#xff0c;编译起来很复杂…

掌握这几个技术点,你也能开发出爆款ARPG游戏!

在众多ARPG游戏的发售下&#xff0c;游戏市场温度迅速升高&#xff0c;今年很可能会成为一个“ARPG手游大年”&#xff0c;或许会再次出现“神仙打架”的情况。 ARPG作为一种非常经典且流行的游戏类型, 已经诞生过无数经典的作品,比如魂系,暗黑破坏神系列,塞尔达传说系列&#…

网页在特殊日子一键变灰

<template> <div :class"{ grayscale: isGrayscale }"> <!-- 你的页面内容放在这里 --> </div> </template> <script> export default { data() { return { // 存储哀悼日的数组 aidaoriDates:["0404", &q…

Filter过滤器+JWT令牌实现登陆验证

一、背景 我们需要在客户端访问服务器的时候给定用户一定的操作权限&#xff0c;比如没有登陆时就不能进行其他操作。如果他需要进行其他操作&#xff0c;而在这之前他没有登陆过&#xff0c;服务端则需要将该请求拦截下来&#xff0c;这就需要用到过滤器&#xff0c;过滤器可以…

高速缓冲存储器(Cache)

程序访问的局部性原理 程序访问的局部性原理包括时间局部性和空间局部性。 时间局部性&#xff1a;指在最近的未来要用到的信息&#xff0c;很可能是现在正在使用的信息&#xff0c;因为程序中存在循环。空间局部性&#xff1a;指在最近的未来要用到的信息&#xff0c;很可能…

简析内部审计数字化转型的方法和路径【小落送书(第6期)】

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大三在校生&#xff0c;喜欢AI编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;落798. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc;️…

利用IP地址信息提升网络安全

在计算机网络中&#xff0c;IP地址是用于唯一标识网络设备的重要标识符。然而&#xff0c;由于网络中存在大量设备&#xff0c;有时会出现IP地址冲突的情况&#xff0c;即两个或多个设备在同一网络中使用了相同的IP地址&#xff0c;这可能导致网络连接故障和通信中断。本文将介…

基于PHP的医院绩效管理系统设计与实现

目 录 摘 要 I Abstract II 引 言 1 1 相关技术 3 1.1 PHP技术简介 3 1.2 Bootstrap框架简介 3 1.3 MVC技术模式简介 3 1.4 Ajax技术简介 3 1.5 MySQL数据库简介 4 1.6本章小结 4 2 系统需求分析 5 2.1系统分析 5 2.2需求分析 8 2.2.1用户需求分析 8 2.2.2管理员需求分析 10 2…

知识付费开发:开启智慧的新篇章

在数字化时代的浪潮下&#xff0c;知识的获取与分享方式正在发生深刻变革。传统的知识传递模式逐渐被知识付费开发的新模式所取代&#xff0c;它以其独特的魅力和巨大的潜力&#xff0c;正在引领着智慧的新潮流。 知识付费开发&#xff0c;是以用户为中心&#xff0c;以知识为…

Spring Boot工程集成验证码生成与验证功能教程

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…

基于SSM技术的宠物寄存系统设计与实现

目 录 摘 要 I Abstract II 引 言 1 1 相关技术介绍 3 1.1 开发技术语言 3 1.1.1 Java 3 1.1.2 Ajax 3 1.1.3 JavaScript 3 1.2 开发框架 4 1.2.1 Spring 4 1.2.2 Spring MVC 4 1.2.3 Mybatis 4 1.2.4 Bootstrap 5 1.3 MySQL数据库 5 1.4 本章小结 6 2 系统分析 7 2.1 系统的需…

针对ETC系统的OBE-SAM模块设计方案

ETC&#xff08;Electrical Toll Collection&#xff09;不停车收费是目前世界上最先进的路桥收费方式。通过安装在车辆挡风玻璃上的车载单元与安装在收费站 ETC 车道上的路侧单元之间的微波专用短程通讯&#xff0c;利用计算机联网技术与银行进行后台结算处理&#xff0c;从而…

ubuntu上通过apt-get 安装指定版本的ecal

在ubuntu上想通过apt get直接安装ecal不自己编译源码安装的话&#xff0c; ecal官网给出的安装指令是 2. Installing eCAL — Eclipse eCAL™ sudo add-apt-repository ppa:ecal/ecal-latest sudo apt-get update sudo apt-get install ecal 要指定版本的时候 按照提示&…

【ICCV】AIGC时代下的SOTA人脸表征提取器TransFace,FaceChain团队出品

一、论文 本文介绍被计算机视觉顶级国际会议ICCV 2023接收的论文 "TransFace: Calibrating Transformer Training for Face Recognition from a Data-Centric Perspective" 论文链接&#xff1a;https://arxiv.org/abs/2308.10133 开源代码&#xff1a;https://an…

在PyCharm中使用Jupyter Notebooks实现高效开发

大家好&#xff0c;在数据科学领域&#xff0c;Jupyter Notebooks已成为一种流行的工具&#xff0c;许多专业人士都在使用它来进行数据分析、机器学习等任务。有时&#xff0c;我们希望在更加强大、功能齐全的IDE环境中运行Jupyter笔记本&#xff0c;以提高工作效率和开发体验。…

GIT | 解决IDEA每次git拉取远程代码 default changelist 都会出现 .idea文件修改记录

问题描述&#xff1a; 每次我在拉取远程代码的时候&#xff0c;git都会默认将 .idea当中的文件&#xff08;例如&#xff1a;compiler.xml or workspace.xml&#xff09;都会莫名其妙的自动修改。 这里吐槽一下很离谱的一个现象&#xff0c;仔细看下修改的内容&#xff0c;最离…

【并查集】一种简单而强大高效的数据结构

目录 一、并查集原理 二、并查集实现 三、并查集应用 1. LeetCode并查集相关OJ题 2. 并查集的其他应用及总结 一、并查集原理 并查集&#xff08;Disjoint Set&#xff09;是一种用来管理元素分组和查找元素所属组别的数据结构。它主要支持两种操作&#xff1a;查找&…

第四篇【传奇开心果系列】Python的自动化办公库技术点案例示例:深度解读Pandas生物信息学领域应用

传奇开心果博文系列 系列博文目录Python的自动化办公库技术点案例示例系列 博文目录前言一、Pandas生物学数据操作应用介绍二、数据加载与清洗示例代码三、数据分析与统计示例代码四、数据可视化示例代码五、基因组数据分析示例代码六、蛋白质数据分析示例代码七、生物医学图像…