原文:http://www.tasharen.com/forum/index.php?topic=6751.0
概述
把UIPopupList脚本挂到一个button上,就可以在你点击按钮的时候弹出选项列表,之后选择你想要的选项。
想要创建一个有很多选项的popup list,首先你要挂一个UIPopupList脚本到一个Button上,然后指定Atlas和Font属性。你可以选择指定的sprite当做Background和Heighlight。Background用来当做弹出列表的背景,Heightlight是用来表示当前选项的高亮sprite。
可以在Options框里面为Popup List指定不同的选项。这是一个多行文本框,每一行就是一个选项。比如有三个选项——“First”,“Second”和“Third”——你输入的内容如下:
[C#]
纯文本查看
复制代码
1
2
3
|
First
Second
Third
|
Font表示创建popup list的label用的什么字体。上面图中first、second和third选项的label就是用inspector中指定的“Arimo20”字体创建的。如果你用的bitmap字体,你可能需要修改Font Size;如果是dynamic字体,你可能要修改Font Style。Text Color用来修改文字的颜色,Padding用来控制文字与从Atlas中选择的Background(border)之间的间隔。
如果不想要弹出选项时候的动画,而仅仅就是直接显示选项,可以勾选掉Animated选项。
如果选项要使用本地化系统Localization System,勾选Localized。
OnValueChange部分你可以指定一个函数,当选项变化的时候调用。如果你有一个label,可以用它的SetCurrentSelection函数来显示当前Popup List选择的选项。操作步骤是把这个label的game object拖拽到Notify属性里面,之后在下拉框里面选择UILabel.SetCurrentPercent。
通过代码可以监听变化,使用EventDelegate.Add函数:
[C#]
纯文本查看
复制代码
1
|
EventDelegate.Add(popupList.onChange, YourFunction);
|
YourFunction的类型应该是void FuncName(void),下面这样:
[C#]
纯文本查看
复制代码
1
2
3
4
|
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