这是我参加11月更文挑战的第8天,活动概况检查:2021最终一次更文挑战

推荐阅读

  • CSDN主页
  • GitHub开源地址
  • Unity3D插件共享
  • 简书地址
  • 我的个人博客
  • QQ群:1040082875

大家好,我是佛系工程师☆恬静的小魔龙☆,不守时更新Unity开发技巧,觉得有用记得一键三连哦。

一、前语

首先,介绍一个UGUI,NGUI是UGUI的前身,Unity开发团队将NGUI的开发团队收到自己开发团队下,而且由此开发了UGUI。 UGUI系统是从Unity 4.6版别后才开端集成到Unity编辑器中。

UGUI的特点:

  • 灵活
  • 快速
  • 可视化

对于开发者来说有很多的优点,比如说:

  • 效率高
  • 实现效果好
  • 易于运用和拓展
  • 与Unity编辑器的兼容性

二、InputField 输入框组件介绍

InputField 输入框组件是一个用来输入内容的组件。

一般用来输入账号、暗码、聊天信息,或许输入参数等情况。

在Unity的Hierarchy视图中选择“Create→UI→Input Field”新建一个输入框组件:

【Unity3D-UGUI系列】(八)InputField 输入框组件详解
在Hierarchy视图中,能够看到InputField的层级结构:
【Unity3D-UGUI系列】(八)InputField 输入框组件详解
InputField子对象有两个Text,Placeholder用来提示用户输入的占位符,Text用来输入内容。

三、InputField 输入框组件特点

接下来具体的看一下InputField 输入框组件的特点:

【Unity3D-UGUI系列】(八)InputField 输入框组件详解
Image组件现已介绍过了,能够忽略,主要了解Input Field组件: Interactable、Transition、Navigation跟Button组件是类似的,Button教程中有具体解释。

特点 功用
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 输入框组件的字符类型

【Unity3D-UGUI系列】(八)InputField 输入框组件详解
一共有以下几种类型:

类型|功用

  • | – Standard |规范,能够输入任意字符 Auto corrected| 主动更正,能够主动更正用户输入,并主张输入内容 Integer Number| 整数,只答应输入整数 Decimal Number| 小数,答应输入数字和小数点后一位 Alphanumeric| 字母数字,答应字母和数字。无法输入符号 Name| 称号(支持中文)主动将每个单词的首字母大写。 Email Address| 电子邮件地址,答应您输入最多包括一个@符号的字母数字字符串 Password| 暗码:用 * 表明输入的字符,从而躲藏输入内容。答应输入任意字符 Pin| 暗码:用 * 号表明输入的字符,从而躲藏输入内容。仅答应输入整数 Custom| 自定义:答应自定义行类型、输入类型、默许键盘类型、字符验证

这几个就没啥好说的,

【Unity3D-UGUI系列】(八)InputField 输入框组件详解

主要讲一下自定义:

【Unity3D-UGUI系列】(八)InputField 输入框组件详解
Line Type:行类型,答应输入单行或许多行,或许Enter 键来新建行,持续输入
【Unity3D-UGUI系列】(八)InputField 输入框组件详解
Input Type:输入类型,有三个选项,任何字符、主动修正、暗码类型
【Unity3D-UGUI系列】(八)InputField 输入框组件详解
Keyboard Type:它能够在用户选中输入框时,调出不同类型的键盘
【Unity3D-UGUI系列】(八)InputField 输入框组件详解

称号 功用
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等

【Unity3D-UGUI系列】(八)InputField 输入框组件详解
按需设置咯

假如上面还不满足你的设置,想要更加严格的约束,那么请往下看。

五、代码约束输入字符

比如说用正则表达式来判断输入的字符串是否契合格局,契合格局就不论,不契合格局就把赋值输入的字符串减一位的字符串,也就相当于删除去最终一位

关于正则表达式的应用能够看我另一篇文章:文章链接

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);
            }
        }    
    }
}

【Unity3D-UGUI系列】(八)InputField 输入框组件详解