当前位置: 首页 > news >正文

unity学习58:下拉列表框 dropdown的caption和options

目录

1 下拉列表框 dropdown

1.1 创建dropdown

1.2 dropdown的子物体构成

1.3 drop的子物体构成:默认灰色的模板 template

1.3.1 默认灰色的模板 template 实际是生效的,只是不直接显示

1.3.2 其中 item下面是下拉选项的格式

1.3.3 可以修改和新增

1.4 dropdown的属性

1.5 关联template

1.6 caption 和 item

1.7  其他属性

2 caption 和 item

2.1 caption

2.2 item

3 可修改模板template

3.1 可以先勾选生效后,看看里面内容

3.2 分别在caption 和 template/item 下拉都增加一个image

3.3 分别把这2个image 挂载搭到 dropdown的 caption和item的image里

3.4 分别给 dropdown里的每个option 都选一个图片

3.5 继续隐藏template 然后测试

4 脚本

4.1 脚本需要挂载 dropdown本体下面

4.2 脚本内容

4.2.1 取得控件

4.2.2 取得列表内容

4.2.2 倒腾给变量

4.2.3 增加列表内容

4.2.4

4.3 测试脚本


1 下拉列表框 dropdown

1.1 创建dropdown

1.2 dropdown的子物体构成

  • dropdown的子物体包括
  • label     //显示的文本内容,比如optionA
  • arrow   //下拉箭头
  • 但是接下来有问题了: 那运行时的  optionB optionC 在哪设置的呢?

1.3 drop的子物体构成:默认灰色的模板 template

  • dropdown的子物体还包括一个灰色的template
  • 默认灰色的模板 template

1.3.1 默认灰色的模板 template 实际是生效的,只是不直接显示

template 包含内容

  • viewpoint /content/ item /  选项的格式: background ,label
  • scrollbar /sliding Area /handle等
  • 下面是它全部展开的样子

1.3.2 其中 item下面是下拉选项的格式

选项的格式:

  • background
  • checkmark
  • label

1.3.3 可以修改和新增

可以修改

并且可以新增项,使得模板/母版变多,这样模板控制的其他内容也跟着一起变换了

1.4 dropdown的属性

1.5 关联template

  • 点击template 会跳转到,下面的子物体template

1.6 caption 和 item

见下文

1.7  其他属性

2 caption 和 item

2.1 caption

  • caption 就是上面不展开,也显示的部分。
  • 其实就是一个窗口
  • 也就是默认显示部分
  • 而可以认为caption,纯粹就是一个橱窗,没有内容。只有格式
  • 所有的内容都是来自于 item itemlist

2.2 item

item就是下拉框的全部内容,包括现在显示在caption的那个

3 可修改模板template

3.1 可以先勾选生效后,看看里面内容

  • 勾选后,template,直接把下拉框隐藏起来的内容,也直接展开展示了
  • 下面应该是有个滚动区域

3.2 分别在caption 和 template/item 下拉都增加一个image

分别在caption 和 template/item 下拉都增加一个image

caption

  • 下面新增image
  • 决定标题这边的显示格式

items

  • 下面新增image
  • 决定下面下拉框的显示格式

3.3 分别把这2个image 挂载搭到 dropdown的 caption和item的image里

3.4 分别给 dropdown里的每个option 都选一个图片

3.5 继续隐藏template 然后测试

4 脚本

4.1 脚本需要挂载 dropdown本体下面

  • 之前button的脚本,可以直接挂载canvas下面
  • 这个脚本需要挂载 dropdown本体下面。否则可能找本体比较麻烦

4.2 脚本内容

//获取dropdown

        Dropdown dropdown1 =GetComponent<Dropdown>();

//获取dropdown的内容

        List<Dropdown.OptionData>options1= dropdown1.options;

//修改内容

        options1.Add(new Dropdown.OptionData("Option D"));

        dropdown1.options=options1;

4.2.1 取得控件

  • 声明变量
  • 取得控件
  • dropdown1 =GetComponent<Dropdown>()

4.2.2 取得列表内容

  • dropdown1.options

4.2.2 倒腾给变量

  • 新建1个同类型变量,取得内容
  • List<Dropdown.OptionData>options1
  • options1=dropdown1.options

4.2.3 增加列表内容

  • options1.Add()方法
  • options1.Add(new Dropdown.OptionData("Option D"))

4.2.4

  • //往回赋值
  • dropdown1.options=options1

4.3 测试脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class TestUI2 : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        //获取dropdown
        Dropdown dropdown1 =GetComponent<Dropdown>();
        //获取dropdown的内容
        List<Dropdown.OptionData>options1= dropdown1.options;
        //修改内容
        options1.Add(new Dropdown.OptionData("Option D"));
        dropdown1.options=options1;
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

相关文章:

  • 第002文-kali虚拟机安全与网络配置
  • 【每天认识一个漏洞】url重定向
  • 和鲸科技推出人工智能通识课程解决方案,助力AI人才培养
  • 【3D格式转换SDK】HOOPS Exchange技术概览(一):3D 数据处理高效能与定制化
  • RabbitMQ系列(一)架构解析
  • smolagents学习笔记系列(十)Examples - Web Browser Automation with Agents
  • 极简RabbitMQ快速学习
  • 网络通信库
  • 软件测试丨Docker与虚拟机架构对比分析
  • 物理服务器如何保障数据的安全性?
  • 【学写LibreCAD】0 仿写LibreCAD简介
  • 在android studio上使用rknn模块下面的yolov8_pose模型
  • MySQL 创建指定IP用户并赋予全部权限(兼容8.0以下及8.0以上版本)
  • hbase笔记总结1
  • MFC线程
  • vue3的生命周期
  • 【JAVA-数据结构】Lambda表达式
  • JavaScript 作用域与作用域链深度解析
  • 安装Maven配置阿里云地址 详细教程
  • 子进程的创建 ─── linux第10课
  • 奥园集团将召开债券持有人会议,拟调整“H20奥园2”本息兑付方案
  • 上海市委政法委召开会议传达学习总书记重要讲话精神
  • 蓝佛安:中方将采取更加积极有为的宏观政策,有信心实现今年5%左右增长目标
  • 言短意长|党政主官如何塑造流量城市?
  • 世界哮喘日丨张旻:哮喘的整体诊断率不足三成,吸入治疗是重要治疗手段
  • 以总理:在加沙地带扩大的军事行动将是“高强度”的