Unity DropDown 组件 详解

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下面作为背景展示

 然后将此背景和item的背景拖拽到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);
    }
}

 外部引用挂载

四、实际测试效果 

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

点击效果

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小张不爱写代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值