Unity3D NGUI UIInput制作输入框屏蔽特殊字符(只允许输入正整数)
1、首先看看使用NGUI插件创建一个简单输入文本框效果:。
2、这个简单的输入文本框需要一个label标签作为显示,一个背景图片以及输入UIInput脚本。我们看看unity的输入文本框的节点图
我们需要如下操作创建上图的节点,
接着创建量空的Gameobject节点如图所示并且重新命名为Input和Label名字。
3、绑定对应的脚本,在Input节点上我们添加部件选择UIInput.cs脚本和UISprite.cs脚本以及添加一个矩形碰撞器如图所示:
接下来我们进行UISprite脚本的设置如图:
再对UIInput脚本也进行设置如图:
UIInput(Script):
Label:文本显示在哪个UILabel里
Starting Value:输入框开始显示的字
Saved As:保存输入内容到prefabs中
Active TextColor:激活文本框后显示颜色
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)函数,我们可以看到如下:
这样一来我们就可以在输入框中输入正整数没有“-”号,如果你还想在你的输入框中能输入中文的话则需要进行对UIInput.cs脚本的修改,不过这里有一个博客关于屏蔽特殊字符(只允许输入中文)的教程,教程的链接如下:http://blog.csdn.net/dfgjava/article/details/13024293