Unity UI系统 -- NGUI之基本组件(二)

885 阅读3分钟

「这是我参与11月更文挑战的第10天,活动详情查看:2021最后一次更文挑战

输入框

创建一个UISprite 作为输入框的背景,并且命名为Input,

在Input下添加一个Label,用于显示文字,

最后在Input上添加Boxcollider和UIInput组件,并设置相应的属性,运行即可输入

输入框的属性简介:

  • StaringValue 程序运行时显示的文本内容

  • ActiveTextColor 激活颜色

  • Inactive Color 未激活颜色

  • CaretColor 括号颜色

  • Selection Color 选中颜色

  • Input Type 文本输入类型

    • Standard 标准输入

    • Password 输入密码

    • Validation 校验类型

    • None 不校验

    • Integer 数字

    • Float 小数

    • Alphanumeric: 字母+数字

    • Username : 不能使用特殊字符,不能使用汉字,可以字母和数字

    • Name 首字母自动大写,不能数字,不能特殊字符,不能中文

  • OnReturnKey 回车键操作

    • Submit 提交

    • New Line 开始新行

  • OnSubmit 当OnReturnKey属性设定为Submit时,用户按下回车时进行调用

  • OnChange 当用户进行字符输入时进行回调


Toggle的简介:

Toggle组件经常用于制作具有两个状态的按钮,例如单选框,复选框,页签

制作Toggle按钮,通常需要用两个精灵来呈现,分别是背景图,选中时显示的图。方块图既为背景,对勾为选中是要显示的图。

Toggle的制作:

  1. 创建Sprite用于显示背景框图。

  2. 在背景图下继续创建Sprite显示对勾。

  3. 在背景图上添加BoxCollider。

  4. 在背景图上添加UIToggle组件,并将对勾图拖拽到Sprite属性上。运行即可实现

Toggle常用属性

  • Group:默认为0,代表不分组。相同Group值得Toggle只能选中一个.

  • Starting State:即程序运行的时候Toggle是否为选中状态。

  • Animator/animation: 过度的动画效果

  • Transition: 点击状态改变时候的动画是否有过度效果

  • Smooth: 淡入淡出

  • Instant: 立即出现或消失

  • On Value Change: 当Toggle状态发生改变时,调用的事件

标签页的制作:

  1. 创建3个空游戏对象,命名为TabView,Tabs,Views.Tabs用于放置Toggle组件,Views用于放置每个Toggle对应的内容。

  2. 在Tabs中新建2个Toggle组件,使用Label显示Tab名称。

  3. 在views游戏对象中,为每个Tab创建对应的内容,此处暂时使用Label显示一些文本,分别命名为view1,view2.

  4. 在每个Toggle组件上添加Toggle Objects或 Toggle Components组件,用来设置每个Toggle对应显示的内容。

Avtive 列表用于放置当前Toggle被选中时,需要显示的游戏对象,或者说选中是,激活的游戏对象。

Deactive 列表用于存放当前Toggle被选中是,不需要显示的游戏对象,通常情况下是不需要进行赋值的。


下拉列表:

  1. 首先利用UIsprite制作下拉表的背景。

  2. 再制作好的背景图片下,添加一个Label组件,用来显示选项文字。

  3. 选中UISprite添加BoxCollider和PopList组件。

相关属性:

  • Options 列表项,每一行为一项。

  • Default 默认项 程序运行时,默认选中显示的项。

  • Position 下拉表出现的位置

  • Auto 自动选择位置

  • Above 在上方显示

  • Below 在下方显示

  • Alignment 下拉项文字对齐方式

  • Automatic/Left/Center/Right/justified(自动扩展)

  • OpenOn 下来表打开方式

  • ClickOrTap(点击或轻触)/Right Click(右击)/Double Click(双击)/Manual(手动调用)

  • Localized 是否本地化

动态添加列表项目

public class PopListDemo : MonoBehaviour 
{
 
    private UIPopupList list;
    
    void Start () 
    {
        list = this.GetComponent<UIPopupList>();
        //动态向options中添加项
        for (int i = 0; i < 3; i++)
        {
            //通过AddItem添加项
            list.AddItem("Item "+i);
            //通过RemoveItem删除项
            //list.RemoveItem("Item1");
        }
    }
}

动态获取当前选中的项

public class PopListDemo : MonoBehaviour 
{
 
    private UIPopupList list;
    
    void Start () {
        list = this.GetComponent<UIPopupList>();
    
        //添加值改变回调
        list.onChange.Add(new EventDelegate(onValueChange));
    }
   
   void onValueChange()
   {
       print(list.value);
   }
}