dropdownlist下拉框变透明_Unity3D 4.x利用原生UGUI完成下拉列表DropDownList

本文介绍了如何在Unity3D 4.x中使用原生UGUI组件创建一个透明的下拉列表DropdownList。首先布置一个自适应的Canvas,然后创建一个透明的Panel作为DropdownList,放置Button和Candidate Panel,接着填充候选按钮并调整布局。最后编写脚本实现下拉列表的显示和隐藏,以及选中按钮时更新默认按钮的文本。
摘要由CSDN通过智能技术生成

而且网上还以讹传讹,一堆不知道什么版本的原生UGUI的DrowDownList版本都来了,其实完成这东西非常简单,只是要费点功夫而已。最终效果如下图所示:

具体制作步骤如下,注:由于本人的渣英文,本文截图中的DropDownList被笔误写成了DrowDownList,文章叙述和脚本中的DropDownList才是正确的:

一、场景布置

1、布置一个自适应的画布Canvas。然后,在里面画一个UI->Panel,不是那个3D物体,是UI独有的Panel注意了!这是你以后弄出来的下拉列表DropDownList的大小。通过矩形工具调整大小和位置,并且将颜色设置为全透明。并且将这个Panel直接命名为DropDownList。

2、之后在这个DropDownList中放第一个Button,命名为Button0,调整好大小和位置与旗下Text的文字、字号等,如图所示。

3、之后再于Button0下方拉一个Panel,同样设置为全透明,命名为Candidate,意为候选的意思。如图所示。

4、在Candidate填充按钮,Button1-ButtonN,设置好字体大小等,你甚至还可以直接复制Button0拖到Candidate旗下,其中Button1的文字内容应该与Button0等同。同时调整DropDownList和Panel至适合的大小,调整DropDownList和Panel的时候,可能会导致Button的位置与形变,先将各个旗下Button的移出,移到Canvas,再进行调整就没事了,调好了,再将Button拉回来。最终的效果如图所示。

5、再于DropDownList放个Text或者Image在Button0之下,如同一朵美好的小花,表示这是一个下拉列表DropDownList,如图所示。这里的︾直接可以通过拼音输入法v6打出来。当然真正弄到正式游戏,自然是美工MM弄的好看的UI图片^_^。反正美工MM什么的,我是没有的……

二、脚本编写

至此,整个下拉列表DropDownList的布置完毕,我们还需要写那么一点点的脚本使其真正投入使用。DropDownList.cs如下所示:

using UnityEngine;

using UnityEngine.UI;//要控制Button旗下的文本Text,因此需要这个头文件!

using System.Collections;

public class DropDownList : MonoBehaviour

private GameObject Candidate;

void Start()//上来先将候选项隐藏

Candidate = GameObject.Find("Canvas/DropDownList/Candidate");

Candidate.SetActive(false);

//给予默认按钮Button0的点击事件

public void Button0_OnClick()

Candidate.SetActive(!Candidate.activeSelf);//如果候选项是隐藏的,就弄到显示

//给予其它按钮的点击事件

public void Candidate_OnClick(string button_name)//点击按钮的名称将被传入

//将被默认按钮Button0的文本替换成用户点击的按钮

GameObject.Find("Canvas/DropDownList/Button0/Text").GetComponent().text =

GameObject.Find("Canvas/DropDownList/Candidate/" + button_name + "/Text").GetComponent().text;

Candidate.SetActive(false);//隐藏候选项

这段脚本直接送给DropDownList,而各个候选按钮Button1~ButtonN参数设置为自己的名字,赋予点击事件,Button0的点击如上所示,赋予Button0_OnClick()事件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值