怎样判断是否应当使用下拉菜单

  下拉菜单,就是将一系列的选项隐藏,通过单击某一个控件将会弹出一个包含这些选项的列表,在其中选择想要的选项。这样做不但可以节省屏幕空间,也可以让用户在进行选择时更加方便快捷。

  下拉菜单本质上还是一个单选框,与Toggle的功能有一些类似,对于下拉菜单玩家必须选择一个选项(有一个默认的初始选项),在同一时间也只能选择一个选项(单选性质)。在游戏开发过程中,如果碰到了以下特点的需求,就可以考虑用下拉菜单了。

    (1)有一系列选项需要玩家做出选择,这些选项是有限多的。

    (2)这些选项玩家必须选择一个,也只能选择一个。

    (3)这些选项如果全部列出来用Toggle制作单选功能会非常占用屏幕空间。

创建下拉菜单

  1.第一种方法:使用NGUI做好的下拉菜单预设体。

  2.第二种方法:自我拼装。

    在Unity顶部菜单,依次选择Create->Sprite,这样就在UI节点下创建了一个Sprite子物体。

    在这个子物体身上添加一个PopupList组件,添加方式为,在Inspector面板中依次单击AddComponent->NGUI->Interaction->PopupList。

    因为下拉菜单需要单击,所以,还需要为它添加一个BoxCollider组件,添加方法为选中这个空间,在Unity顶部NGUI菜单,以此选择Attach->BoxCollider。  

显示当前选中的选项

  如果需要显示当前选中的选项,则可以在这个下拉菜单的控件下创建一个Label子物体,创建方法为选中这个下拉菜单的物体,在Untiy顶部NGUI菜单,依次选择Create->Label。

  然后需要将这个Label和下拉菜单关联起来,将Label拖动到下拉菜单PopupList组件的On Value Change回调中,选择SetCurrentSelection方法,这样当PopupList的选项被改变时,当前被选中的选项会实时更新到这个被关联的Label上显示出来。

下拉菜单核心组件PopupList

  Options

    这里是下拉菜单的各个选项录入的地方,识别方式为按行识别,也就是说每填入一个选项后,需要回车行才能继续录入下一个选项。

  Default

    默认情况下选项中的选项,,这个选项会自动填充为录入的第一个选项。

  Position

    位置,这里给了3个选项。

      Auto:菜单将会自动决定是从上方弹出还是下方弹出。

      Above:菜单将会从上方弹出。

      Blow:菜单将会从下方弹出。

  Aligment

    对齐方式,这里和Label里对齐方式一样。

  Open on

    打开的方式,这里提供了以下的方式可选择。

      ClickOrTap:单击出现菜单。

      RightClick:右键单击出现菜单。

      DoubleClick:双击出现菜单。

      Manual:手动出现,这种模式下任何输入都不会出现,必须代码控制它出现。

  Localized

    这里是指菜单中的文本是否被本地化。

    所谓本地化,可以理解为多语言翻译,例如,游戏是英文的,那么游戏中的所有UI文本都将会被转化为英文版本。那么这个Localized选项就是决定这个下拉菜单是否被转换的。

    如果打上勾,则表示这个菜单里的选项也会被本地化转化语言。如果不打勾,则表示这些选项里的文本不会被翻译,永远会保持它本来的样子。

  Atlas

    图集设定。 

    Atlas:选择图集。

    Background:设定下拉菜单的背景的精灵图片,还可以设置颜色。

    Highlight:设定下拉菜单出现后,鼠标光标移到选项上高亮显示时显示的图片,也可以设定颜色。

  Font

    设定菜单文本的字体、字号大小等。

  On Value Change

    当这个下拉菜单当前选项变化时,触发的事件。

  可能会有疑问:为什么这个下拉菜单会单独进行是否本地化和使用Font字体的指定?这是因为大多数游戏在制作上有语言版本时,都会使用下拉菜单来让玩家选择它所认识的语言,着中国情况下选项不能被翻译,使用的字体也可能很特殊需要涵盖很多种语言文字。

制作下拉菜单的注意事项

  (1)一定要有接收单击事件的BoxCollider;

  (2)填写选项时,一定要注意换行;

  (3)如果制作下拉菜单是为了让玩家选择语言,则要更加注意本地化的设置和Font的设置;

  (3)

制作下拉菜单(PopupList)的更多相关文章

  1. jQuery+Superfish制作下拉菜单

    superfish制作下拉菜单真的很方便而好很好用,而且还可以通过Superfish提供的参数来控制下拉菜单的不同效果,而且他没有层级限制,换句话说可以通过Superfish来写你想要的层级菜单. 官 ...

  2. CSS3制作下拉菜单

    导航菜单其实是没有什么可说的,制作方法到处可见,今天这个案例本来不只是一个导 航,还有一个搜索表单的,可是为了偷懒,把搜索表单部分去掉了,就变成了一个CSS3 制作的下拉菜单.在这个导航中主要两点,一 ...

  3. css用hover制作下拉菜单

    首先我们的需求就是 制作一个鼠标移动到某个区域就会有下拉菜单的弹出,这样会有更多的子类内容,示例代码如下: <!DOCTYPE html> <html lang="en&q ...

  4. Html5+Css3制作下拉菜单的三种方式

    一.渐变式改变ol的高度 1.外部为ul标签,在每个li里嵌套一个ol列表2.设置外部li左浮动,内部ol标签绝对定位,外部li标签相对定位3.设置ol的高为0,溢出隐藏4.外部li标签:hover ...

  5. vue + element-ui 制作下拉菜单(可配置路由、可根据路由高亮list、可刷新自动展开定位路由)

    本篇文章分享一篇关于 vue制作可路由切换组件.可刷新根据路由定位导航(自动展开).可根据路由高亮对应导航选项 一.实现的功能如下: 1.可折叠导航面板 2.点击导航路由不同组件           ...

  6. 使用PopupContainerEdit和PopupContainerControl制作下拉菜单树小记

    转自:http://jlcon.iteye.com/blog/898210 首先拖动一个PopupContainerEdit控件和PopupContainerControl控件到界面上,在PopupC ...

  7. Excel应用----制作二级下拉菜单【转】

    应用: 原始数据源是两列的源数据,那该如何制作二级下拉菜单, 当然可以将这两列的数据源,转换成上面的那种格式,再用上面的方法来制作. 今天教大学的方法是直接通过这种两列式的数据源来制作下拉菜单,如果A ...

  8. 制作excel下拉菜单

    1.选中excel中需要制作下拉菜单的单元格/列/行,点击‘数据’——'数据验证': 2.允许选择'序列',来源中手动输入需要的内容,以逗号(,)分割:  3.如下图,此列都具有下拉选择的功能:

  9. 24个 HTML5 & CSS3 下拉菜单效果及制作教程

    下拉菜单是一个很常见的效果,在网站设计中被广泛使用.通过使用下拉菜单,设计者不仅可以在网站设计中营造出色的视觉吸引力,但也可以为网站提供了一个有效的导航方案.使用 HTML5 和 CSS3 可以更容易 ...

随机推荐

  1. [转]DataTable用中使用Compute 实现简单的DataTable数据的统计

    本文转自:http://blog.csdn.net/zwxrain/article/details/252285 調用格式: object DataTable.Compute(string expre ...

  2. Java从Jar文件中动态加载类

    动态加载jar包,在实际开发中经常会需要用到,尤其涉及平台和业务的关系的时候,业务逻辑部分可以独立出去交给业务方管理,业务方只需要提供jar包,就能在平台上运行. 下面通过一个实例来直观演示: 第一: ...

  3. echars3.0 柱状图大小设置

    { name:'百度', type:'bar', barWidth : 10, stack: '搜索引擎', data:[620, 732, 701, 734, 1090, 1130, 1120] } ...

  4. 【Knockout】五、创建自定义绑定

    概述 除了上一篇列出的KO内置的绑定类型(如value.text等),你也可以创建自定义绑定. 注册你的binding handler ko.bindingHandlers.yourBindingNa ...

  5. hiho欧拉路·二 --------- Fleury算法求欧拉路径

    hiho欧拉路·二 分析: 小Ho:这种简单的谜题就交给我吧! 小Hi:真的没问题么? <10分钟过去> 小Ho:啊啊啊啊啊!搞不定啊!!!骨牌数量一多就乱了. 小Hi:哎,我就知道你会遇 ...

  6. 【Android学习】调用系统相机

    Android调用系统相机分三步走: 首先是要设置调用相机的权限. 其次是给按钮加打开相机的事件. 最后是拍照后进行图片的保存. 第一步,添加权限: <!-- 调用系统相机 --> < ...

  7. Cocos2d-x数据持久化-修改数据

    修改数据时,涉及的SQL语句有insert.update和delete语句,这3个SQL语句都可以带参数.修改数据的具体步骤如下所示.(1) 使用sqlite3_open函数打开数据库.(2) 使用s ...

  8. Swift项目开发实战-基于分层架构的多版本iPhone计算器-直播公开课

    Swift项目开发实战-基于分层架构的多版本iPhone计算器-直播公开课 本课程采用Q Q群直播方式进行直播,价值99元视频课程免费直播.完整的基于Swift项目实战,手把手教你做一个Swift版i ...

  9. [译]JavaScript检测浏览器前缀

    原文地址: Detect Vendor Prefix with JavaScript 不管浏览器私有前缀的现状如何,我们还是要与之为伴,并且有时候还需要利用它来做一些事情.这些前缀可以用于CSS(比如 ...

  10. Linux RedHat无法安装软件问题(No package gcc available. Nothing to do)

    在一个新的Linux服务器上安装nginx的时候,命令都不能解析,缺少gcc编辑器,安装gcc的命令也出错. [root@localhost ~]# yum -y install gcc Loaded ...