• 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组件对应的位置上面如下图所示

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

    1. using System.Collections;
    2. using System.Collections.Generic;
    3. using TMPro;
    4. using UnityEngine;
    5. public class Test : MonoBehaviour
    6. {
    7. public TMP_Dropdown m_Dropdown;
    8. public List m_Sprites;
    9. public List<string> m_TextTip;
    10. public int m_CreateTemp;
    11. private TMP_Dropdown.OptionData m_OptionData;
    12. private int lastIndex = 0;
    13. void Start()
    14. {
    15. InitDorpDown();
    16. }
    17. private void InitDorpDown()
    18. {
    19. m_Dropdown.options.Clear();
    20. for (int i = 0; i < m_CreateTemp; i++)
    21. {
    22. m_OptionData = new TMP_Dropdown.OptionData();
    23. m_OptionData.text = m_TextTip[i];
    24. m_OptionData.image = m_Sprites[i];
    25. m_Dropdown.options.Add(m_OptionData);
    26. }
    27. //设置默认显示
    28. m_Dropdown.captionText.text = m_TextTip[0];
    29. m_Dropdown.captionImage.sprite = m_Sprites[0];
    30. m_Dropdown.onValueChanged.AddListener(OnChanged);
    31. }
    32. private void OnChanged(int index)
    33. {
    34. if (index == lastIndex) return;
    35. lastIndex = index;
    36. Debug.Log(index);
    37. }
    38. }

     外部引用挂载

    四、实际测试效果 

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

    点击效果

  • 相关阅读:
    掌动智能分享:性能压力测试的重要性与优势
    ELK搭建以及使用教程(多pipiline)
    2. java基础
    什么函数不能是虚函数?为什么析构必须是虚函数?
    ClickHouse(13)ClickHouse合并树MergeTree家族表引擎之CollapsingMergeTree详细解析
    46、优惠券秒杀(集群下的线程并发问题(微服务集群))
    链表(7.27)
    设计模式 - MVC 扩展设计
    基于PHP的毕设双选管理系统
    个人的微信公众号如何变更主体?
  • 原文地址:https://blog.csdn.net/qq_41973169/article/details/136559367