【Unity3D-UGUI系列】(八)InputField 输入框组件详解_unityinputfield_恬静的小魔龙的博客-程序员宅基地

技术标签: c#  ugui  unity  # Unity3D之UGUI  html5  html  

推荐阅读

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

一、前言

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

UGUI的特点:

  • 灵活
  • 快速
  • 可视化

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

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

这是本系列文章的第八篇:
【Unity3D-UGUI系列】(一)Canvas 画布组件详解
【Unity3D-UGUI系列】(二)Text文本组件详解
【Unity3D-UGUI系列】(三)Button 按钮组件详解
【Unity3D-UGUI系列】(四)Image 图片组件详解
【Unity3D-UGUI系列】(五)RawImage 显示纹理组件详解
【Unity3D-UGUI系列】(六)Panel 容器组件详解
【Unity3D-UGUI系列】(七)Dropdown 下拉菜单组件详解
【Unity3D-UGUI系列】(八)InputField 输入框组件详解
【Unity3D-UGUI系列】(九)Scrollbar 滚动条组件详解
【Unity3D-UGUI系列】(十)Slider 滑动条组件详解
【Unity3D-UGUI系列】(十一)Toggle 开关组件详解
【Unity3D-UGUI系列】(十二)ScrollView 滚动视图组件详解

二、InputField 输入框组件介绍

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

通常用来输入账号、密码、聊天信息,或者输入参数等情况。

在Unity的Hierarchy视图中选择“Create→UI→Input Field”新建一个输入框组件:
在这里插入图片描述
在Hierarchy视图中,可以看到InputField的层级结构:
在这里插入图片描述
InputField子对象有两个Text,Placeholder用来提示用户输入的占位符,Text用来输入内容。

三、InputField 输入框组件属性

接下来详细的看一下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 输入框组件的字符类型

在这里插入图片描述
一共有以下几种类型:

类型 功能
Standard 标准,可以输入任意字符
Auto corrected 自动更正,可以自动更正用户输入,并建议输入内容
Integer Number 整数,只允许输入整数
Decimal Number 小数,允许输入数字和小数点后一位
Alphanumeric 字母数字,允许字母和数字。无法输入符号
Name 名称(支持中文)自动将每个单词的首字母大写。
Email Address 电子邮件地址,允许您输入最多包含一个@符号的字母数字字符串
Password 密码:用 * 表示输入的字符,从而隐藏输入内容。允许输入任意字符
Pin 密码:用 * 号表示输入的字符,从而隐藏输入内容。仅允许输入整数
Custom 自定义:允许自定义行类型、输入类型、默认键盘类型、字符验证

这几个就没啥好说的,在这里插入图片描述

主要讲一下自定义:

在这里插入图片描述
Line Type:行类型,允许输入单行或者多行,或者Enter 键来新建行,继续输入
在这里插入图片描述
Input Type:输入类型,有三个选项,任何字符、自动修正、密码类型
在这里插入图片描述
Keyboard Type:它可以在用户选中输入框时,调出不同类型的键盘
在这里插入图片描述

名称 功能
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);
            }
        }    
    }
}

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/q764424567/article/details/119992844

智能推荐

关于毛刺_时钟毛刺消除_shengzhuzhu的博客-程序员宅基地

关于毛刺分类: FPGA2013-12-13 21:26 161人阅读 评论(0) 收藏 举报FPGADesign目录(?)[+]1. 毛刺的产生原因:冒险和竞争使用分立元件设计电路时,由于PCB在走线时,存在分布电容和电容,所以在几ns内毛刺被自然滤除,而在PLD内部没有分布电感和电容,所以在PLD/FPGA设计中,竞争和冒险问_时钟毛刺消除

vue项目全局引入vue-awesome-swiper插件做出轮播效果-程序员宅基地

在安装了vue的前提下,打开命令行窗口,输入vue init webpack swiper-test,创建一个vue项目且名为swiper-test(创建速度可能会有点慢,耐心等),博文讲完后,源码托管在GitHub中,供下载并理解。vue项目自动生成完毕后,继续在命令行窗口输入cd swiper-test,将目录切换到swiper-test。下面就开始启动vue项目了,..._vue2全局引入swiper

解决 win7 arcgis 10.2发布服务显示打包成功,发布失败unable to connect to publishing tools service问题_打包成功但发布失败查询gp结果_天亦可蓝的博客-程序员宅基地

我的操作系统是win7系统,之前在虚拟机安装arcgis 10.2并发布服务没问题。然而在win7系统安装arcgis10.2发布服务的时候,遇到这么一个棘手的问题。发布失败的原因是publishing tools这个工具没启动,所以当然去启动啦。但事与愿违果然出问题了要折腾你一下。工具打不开,服务就发布不了。怎么办呢?试过重装软件,添加权限,删除重新创造新站点等措..._打包成功但发布失败查询gp结果

PMM (Percona MySQL Monitor) 部署_pmm部署_我的微信公众号的博客-程序员宅基地

部署环境说明mysql 10.0.0.201pmm server 10.0.0.200操作系统都是centos 7.x安装PMM安装dockeryum install docker运行dockersystemctl start dockersystemctl enable docker下载容器镜像docker pull percona_pmm部署

Threads and Swing_qq7187057的博客-程序员宅基地

Why Isn’t the Swing Toolkit Multithread-Safe? After Swing components have been displayed on the screen, they should only be operated on by the event-handling thread. The event-handling thread (or

Web前端基础 HTML以及CSS简单标签_html图像域_just Liu的博客-程序员宅基地

目录HTMLhead中常见的标签body中常见的标签HTML实体HTML:超文本标记语言(英语:HyperText Markup Language)是一种用于创建网页的标准标记语言用HTML语法写成的文件称为网页文件,后缀为 .html 或 .htm一个最简单的网页:*&amp;lt;html&amp;gt; &amp;lt;head&amp;gt; &amp;lt;title&amp;gt_html图像域

随便推点

并行作业之openMP笔记(1)_omp_parallel shared一个变量例题_virtual___的博客-程序员宅基地

1 Work-Sharing Constructs(工作共享结构)A work-sharing construct divides the execution of the enclosed code region among the members of the team that encounter it.工作共享结构将封闭代码区域的执行划分给遇到它的团队成员。Work-sharing constructs do not launch new threads.工作共享结构不会启动新线程。Th_omp_parallel shared一个变量例题

Java笔记3——IDEA软件中的部分快捷键 ; for while do...while三种循环结构,if switch选择语句_idea嵌套循环_Insight blue sky的博客-程序员宅基地

学习Java编程,IntelliJ IDEA是一个很智能,帮助你更快的编写程序的软件;具体此软件的安装以及破解教程,我就不再赘述了,在官网上,一些博客上大家都可以搜到,我主要来分享下在此软件中常用的一些快捷键:1.输入psvm可以提供public static void main(String[] args)方法;2.输入sout可以提供System.out.println()方法;3.ct..._idea嵌套循环

slf4j,commons-logging,log4j等等日志jar的关系_黄小二哥的博客-程序员宅基地

通过上面的图,可以简单的理清关系!  commons-logging和slf4j都是日志的接口,供用户使用,而没有提供实现!  log4j,logback等等才是日志的真正实现。  当我们调用接口时,接口的工厂会自动寻找恰当的实现,返回一个实现的实例给我服务。这些过程都是透明化的,用户不需要进行任何操作!  这里有个小故事,当年Apache说服log4j以及其他的日志...

Objective-c的@property 详解 2_weixin_33728268的博客-程序员宅基地

http://www.cnblogs.com/andyque/archive/2011/08/03/2125728.htmlObjective-c的@property 详解     之前很多网友对我翻译的教程中的Property的使用感到有些迷惑不解,搞不清楚什么时候要release,什么时候要self.xxx = nil;同时对于Object...

做单片机几年后,要不要转嵌入式?-程序员宅基地

01 问题首先确认下,我们这里讲的单片机主要是指51、STM32、MSP430、PIC、LPCxx等各种单片机开发工作。而嵌入式主要是指嵌入式linux软件开发,也就是硬件上基于嵌入式...

转:深度理解Oracle10g中UNDO_RETENTION参数的使用_ailiu9889的博客-程序员宅基地

本文转自:http://hi.baidu.com/lichangzai/blog/item/02f43b36a630bcd5a2cc2bc1.html,如原文作者对此有异议,本人愿意移除每一中数据库都需要有一种管理回滚或者撤销数据的方法。当一个DML发生以后,在用户还没有提交(COMMIT)改变,用户不希望这种改变继续保持,需要撤销所做的修改,将数据回退到没有发生改变以前,这时就需要...

推荐文章

热门文章

相关标签