【Unity3D】【NGUI】UIPopupList

来源:互联网 发布:linux串口读取gps数据 编辑:程序博客网 时间:2024/06/05 06:01

原文:http://www.tasharen.com/forum/index.php?topic=6751.0

NGUI讨论群:333417608

概述


把UIPopupList脚本挂到一个button上,就可以在你点击按钮的时候弹出选项列表,之后选择你想要的选项。 



想要创建一个有很多选项的popup list,首先你要挂一个UIPopupList脚本到一个Button上,然后指定AtlasFont属性。你可以选择指定的sprite当做BackgroundHeighlight。Background用来当做弹出列表的背景,Heightlight是用来表示当前选项的高亮sprite。

可以在Options框里面为Popup List指定不同的选项。这是一个多行文本框,每一行就是一个选项。比如有三个选项——“First”,“Second”和“Third”——你输入的内容如下:

FirstSecondThird

Font表示创建popup list的label用的什么字体。上面图中first、second和third选项的label就是用inspector中指定的“Arimo20”字体创建的。如果你用的bitmap字体,你可能需要修改Font Size;如果是dynamic字体,你可能要修改Font StyleText Color用来修改文字的颜色,Padding用来控制文字与从Atlas中选择的Backgroundborder)之间的间隔。

如果不想要弹出选项时候的动画,而仅仅就是直接显示选项,可以勾选掉Animated选项。

如果选项要使用本地化系统Localization System,勾选Localized

OnValueChange部分你可以指定一个函数,当选项变化的时候调用。如果你有一个label,可以用它的SetCurrentSelection函数来显示当前Popup List选择的选项。操作步骤是把这个label的game object拖拽到Notify属性里面,之后在下拉框里面选择UILabel.SetCurrentPercent。

通过代码可以监听变化,使用EventDelegate.Add函数:

EventDelegate.Add(popupList.onChange, YourFunction);

YourFunction的类型应该是void FuncName(void),下面这样:

void YourFunction (){    Debug.Log("Selection: " + UIPopupList.current.value);}

小贴士

通过引用一个按钮的label到OnValueChange中,并且选择UILabel.SetCurrentSelection方法,可做出一个比较实用的Popup List。这样做回让label自动更新成你选择的选项。

类文档

http://tasharen.com/ngui/docs/class_u_i_popup_list.html
原创粉丝点击