本帖最后由 夜行的猫仔 于 2014-10-19 02:06 编辑
原创:夜行的猫仔 (见2楼)在网上查到的UIPopupList文章都如下所示,猫仔自己总结了一些用法放在2楼,希望用得上。
---------------------------------------------------------------------------------------------------
把UIPopupList脚本挂到一个button上,就可以在你点击按钮的时候弹出选项列表,之后选择你想要的选项。
想要创建一个有很多选项的popup list,首先你要挂一个UIPopupList脚本到一个Button上,然后指定Atlas和Font属性。你可以选择指定的sprite当做Background和Heighlight。Background用来当做弹出列表的背景,Heightlight是用来表示当前选项的高亮sprite。
可以在Options框里面为Popup List指定不同的选项。这是一个多行文本框,每一行就是一个选项。比如有三个选项——“First”,“Second”和“Third”——你输入的内容如下:
[mw_shl_code=csharp,true]First
Second
Third [/mw_shl_code]
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函数:
[mw_shl_code=csharp,true]EventDelegate.Add(popupList.onChange, YourFunction); [/mw_shl_code]
YourFunction的类型应该是void FuncName(void),下面这样:[mw_shl_code=csharp,true]void YourFunction ()
{
Debug.Log("Selection: " + UIPopupList.current.value);
}[/mw_shl_code]
小贴士
通过引用一个按钮的label到OnValueChange中,并且选择UILabel.SetCurrentSelection方法,可做出一个比较实用的Popup List。这样做回让label自动更新成你选择的选项。
类文档
http://tasharen.com/ngui/docs/class_u_i_popup_list.html
|