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()
    {
        
    }
}

猜你喜欢

转载自blog.csdn.net/xuemanqianshan/article/details/145901939
今日推荐