Unity3D NGUI UIInput制作输入框屏蔽特殊字符(只允许输入正整数)

1、首先看看使用NGUI插件创建一个简单输入文本框效果:

2、这个简单的输入文本框需要一个label标签作为显示,一个背景图片以及输入UIInput脚本。我们看看unity的输入文本框的节点图Unity3D NGUI UIInput制作输入框屏蔽特殊字符(只允许输入正整数)_第1张图片

我们需要如下操作创建上图的节点,Unity3D NGUI UIInput制作输入框屏蔽特殊字符(只允许输入正整数)_第2张图片

接着创建量空的Gameobject节点如图所示并且重新命名为Input和Label名字。

3、绑定对应的脚本,在Input节点上我们添加部件选择UIInput.cs脚本和UISprite.cs脚本以及添加一个矩形碰撞器如图所示:Unity3D NGUI UIInput制作输入框屏蔽特殊字符(只允许输入正整数)_第3张图片

接下来我们进行UISprite脚本的设置如图:

Unity3D NGUI UIInput制作输入框屏蔽特殊字符(只允许输入正整数)_第4张图片

再对UIInput脚本也进行设置如图:

Unity3D NGUI UIInput制作输入框屏蔽特殊字符(只允许输入正整数)_第5张图片

UIInput(Script):

Label:文本显示在哪个UILabel里

Starting Value:输入框开始显示的字

Saved As:保存输入内容到prefabs中

Active TextColor:激活文本框后显示颜色

Inactive Color:默认状态颜色

Caret Color:插入字符状态颜色

Selection Color:选择状态中字符的颜色

Input Type:输入类型(standard)标准的,(AutoCorrect)自动修正,(Password)密码

Keyboard Type:对应移动平台键盘类型

Validation:输入类型限制

Character Limit:输入字符数限制

On Submit:输入完后进行事件分发

On Change:输入字符有变动时进行事件分发

4、接下来我们需要输入文本框只能输入正整数我们需要修改一下NGUI的源码,找到UIInput.cs脚本,打开脚本找到protected char Validate (string text, int pos, char ch)函数,我们可以看到如下:

Unity3D NGUI UIInput制作输入框屏蔽特殊字符(只允许输入正整数)_第6张图片

这样一来我们就可以在输入框中输入正整数没有“-”号,如果你还想在你的输入框中能输入中文的话则需要进行对UIInput.cs脚本的修改,不过这里有一个博客关于屏蔽特殊字符(只允许输入中文)的教程,教程的链接如下:http://blog.csdn.net/dfgjava/article/details/13024293


你可能感兴趣的:(unity3D)