这是我参加11月更文挑战的第8天,活动概况检查:2021最终一次更文挑战
推荐阅读
大家好,我是佛系工程师☆恬静的小魔龙☆,不守时更新Unity开发技巧,觉得有用记得一键三连哦。
一、前语
首先,介绍一个UGUI,NGUI是UGUI的前身,Unity开发团队将NGUI的开发团队收到自己开发团队下,而且由此开发了UGUI。 UGUI系统是从Unity 4.6版别后才开端集成到Unity编辑器中。
UGUI的特点:
- 灵活
- 快速
- 可视化
对于开发者来说有很多的优点,比如说:
- 效率高
- 实现效果好
- 易于运用和拓展
- 与Unity编辑器的兼容性高
二、InputField 输入框组件介绍
InputField 输入框组件是一个用来输入内容的组件。
一般用来输入账号、暗码、聊天信息,或许输入参数等情况。
在Unity的Hierarchy视图中选择“Create→UI→Input Field”新建一个输入框组件:
三、InputField 输入框组件特点
接下来具体的看一下InputField 输入框组件的特点:
特点 | 功用 |
---|---|
TextComponent | 用来办理输入的文本组件 |
Text | 输入的内容 |
Character Limit | 字符约束类型,能够约束最大字符数的值。 |
Content Type | 内容类型,定义输入内容接受/约束的字符类型 |
Line Type | 行类型。单行、多行,多行回车换行 |
Placeholder | 占位符,用来提示输入的内容,当点击输入框后会躲藏 |
Caret Blink Rate | 输入框上的光标的闪耀频率 |
Caret Width | 输入框上的光标的宽度 |
Custom Caret Color | 自定义光标颜色 |
Selection Color | 选中文本的背景颜色 |
Hide Mobile Input | 躲藏移动输入内容 |
Read Only | 是否只读 |
On Value Changed | 监听事情 |
InputField 输入框组件主要就是为了办理输入内容的组件,能够操控输入的文本的长度,类型显现等。
下面就具体介绍一下InputField组件的输入类型。
四、InputField 输入框组件的字符类型
类型|功用
- | – Standard |规范,能够输入任意字符 Auto corrected| 主动更正,能够主动更正用户输入,并主张输入内容 Integer Number| 整数,只答应输入整数 Decimal Number| 小数,答应输入数字和小数点后一位 Alphanumeric| 字母数字,答应字母和数字。无法输入符号 Name| 称号(支持中文)主动将每个单词的首字母大写。 Email Address| 电子邮件地址,答应您输入最多包括一个@符号的字母数字字符串 Password| 暗码:用 * 表明输入的字符,从而躲藏输入内容。答应输入任意字符 Pin| 暗码:用 * 号表明输入的字符,从而躲藏输入内容。仅答应输入整数 Custom| 自定义:答应自定义行类型、输入类型、默许键盘类型、字符验证
主要讲一下自定义:
称号 | 功用 |
---|---|
Default | 方针渠道的默许键盘 |
ASCLL Capable | 带规范ASCII键的键盘。 |
Numbers And Punctuation | 键盘与数字和标点符号键 |
URL | 键盘与URL输入键 |
Number Pad | 键盘与规范数字键 |
Phone Pad | 键盘与合适键入电话号码的布局 |
NamePhone Pad | 键盘与字母数字键 |
Email Address | 带有合适键入电子邮件地址的其他键的键盘 |
Nintendo Network Account | 带有网络账号键的键盘 |
Social | 键盘与常用于交际媒体上的符号键,如Twitter |
Search | 键盘上带有“.” 空格键周围的键,合适键入搜索词 |
Character Validatior:字符验证类型,有整数、小数、字母数字、姓名、Email等
假如上面还不满足你的设置,想要更加严格的约束,那么请往下看。
五、代码约束输入字符
比如说用正则表达式来判断输入的字符串是否契合格局,契合格局就不论,不契合格局就把赋值输入的字符串减一位的字符串,也就相当于删除去最终一位
关于正则表达式的应用能够看我另一篇文章:文章链接
5-1、约束输入的字符串0-9 a-f A-F
using System.Text.RegularExpressions;
using UnityEngine;
using UnityEngine.UI;
public class Input_Test : MonoBehaviour
{
InputField m_InputField;
private void Awake()
{
m_InputField = GetComponent<InputField>();
m_InputField.onValueChanged.AddListener(OnInputFieldValueChang);
}
private void OnInputFieldValueChang(string inputInfo)
{
Regex reg = new Regex("^[A-Fa-f0-9]+$");
if (reg.IsMatch(inputInfo))
{
m_InputField.text = inputInfo;
}
else
{
if (m_InputField.text == "")
{
m_InputField.text = "";
}
else
{
m_InputField.text = inputInfo.Substring(0, inputInfo.Length - 1);
}
}
}
}