当前位置: 首页 > news >正文

【100个 Unity实用技能】 | InputField输入框组件实现输入限制,只能输入中文或特殊字符等

请添加图片描述

  • 🎬 博客主页:https://xiaoy.blog.csdn.net

  • 🎥 本文由 呆呆敲代码的小Y 原创,首发于 CSDN🙉

  • 🎄 学习专栏推荐:Unity系统学习专栏

  • 🌲 游戏制作专栏推荐:游戏制作

  • 🌲Unity实战100例专栏推荐:Unity 实战100例 教程

  • 🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!

  • 📆 未来很长,值得我们全力奔赴更美好的生活✨

  • ------------------❤️分割线❤️-------------------------

请添加图片描述请添加图片描述请添加图片描述

请添加图片描述


Unity 小科普

老规矩,先介绍一下 Unity 的科普小知识:请添加图片描述请添加图片描述请添加图片描述

  • Unity是 实时3D互动内容创作和运营平台 。
  • 包括游戏开发美术建筑汽车设计影视在内的所有创作者,借助 Unity 将创意变成现实。
  • Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机平板电脑PC游戏主机增强现实虚拟现实设备。
  • 也可以简单把 Unity 理解为一个游戏引擎,可以用来专业制作游戏

Unity 实用小技能学习

InputField输入框组件实现输入限制,只能输入中文或特殊字符等

在使用InputField的过程中,有些时候我们需要对一些输入字符做限制。
比如只允许输入整数,字母数字,允许字母和数字但无法输入符号,只能输入中文等输入限制。

这个使用InputField组件自带的属性ContentType可以直接解决掉部分限制。比如只能输入整数及只能输入字母和数字等,但是某些特殊性的限制就只能通过我们使用代码进行特殊限制了。

下面来介绍只能输入中文的具体方法

首先新建一个脚本挂载到InputField组件的游戏对象上(或者其他场景物体)。

方法一:onValidateInput:自定义验证回调
此方法是使用Unity InputField组件的回调方法对每个输入的字符进行字符验证,然后我们对该字符进行相关判定即可。

代码如下:

using UnityEngine.UI;
using UnityEngine;public class InputFieldTest : MonoBehaviour
{private InputField m_inputField;protected void Awake(){m_inputField= GetComponent<InputField>();m_inputField.onValidateInput = ValidateCallback;}private char ValidateCallback(string text, int charIndex, char ch){//Debug.Log($"测试语言。text:{text}, charIndex:{charIndex}, ch:{ch}");if (ch >= 0x4e00 && ch <= 0x9fa5)//汉字的范围{return ch;}else{return (char)0;}}
}

方法二:onValueChanged配合Regex类

此方法使用了.Net的 Regex类,需要引入命名空间 System.Text.RegularExpressions
然后使用 Regex.IsMatch() 进行匹配项验证,来筛选我们的字符做判定。

IsMatch(String) | 指示 Regex 构造函数中指定的正则表达式在指定的输入字符串中是否找到了匹配项。

代码如下:

using UnityEngine.UI;
using UnityEngine;
using System.Text.RegularExpressions;public class InputFieldTest : MonoBehaviour
{private InputField m_inputField;protected void Awake(){m_inputField= GetComponent<InputField>();m_inputField.onValueChanged.AddListener(OnInputFieldValueChang);}private void OnInputFieldValueChang(string inputInfo){Regex reg = new Regex("^[\u4e00-\u9fa5]+$");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);}}}
}

效果如下:
请添加图片描述

若是想要一些指定的其他特殊输入限制,只需要变换if中的正则表达式条件即可。

UGUI组件学习文章:Unity-UGUI控件全面解析 | InputField 输入框组件详解
正则表达式参考文章:【Unity3D日常开发】在Unity中使用正则表达式


在这里插入图片描述

相关文章:

【100个 Unity实用技能】 | InputField输入框组件实现输入限制,只能输入中文或特殊字符等

&#x1f3ac; 博客主页&#xff1a;https://xiaoy.blog.csdn.net &#x1f3a5; 本文由 呆呆敲代码的小Y 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f384; 学习专栏推荐&#xff1a;Unity系统学习专栏 &#x1f332; 游戏制作专栏推荐&#xff1a;游戏制作 &…...

倍数+路径之谜

倍数 :用户登录https://www.lanqiao.cn/problems/583/learning/?page5&first_category_id1&sortstudents_count 题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 请问在 1 到 2020 中&#xff0c;有多少个…...

【Unity渲染】URP透明物体自身渲染穿插异常问题

背景&#xff1a; 对于URP中的某个物体&#xff0c;我们如果希望他正反面都可以被渲染。 通常会有两种解决方案&#xff1a; 1.将网格设置为双面网格。&#xff08;此种情况Mesh.RecalculateNormals计算结果可能会异常&#xff0c;解决可参考网格法线生成异常解决&#xff0…...

c/c++:指针,指针定义和使用,指针大小4字节,野指针,空指针*p=NULL

c/c:指针&#xff0c;指针定义和使用&#xff0c;指针大小4字节&#xff0c;野指针&#xff0c;空指针*pNULL 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#xff0c;大厂不招人&#xff0c;此时学会c的话&#xff0c; 我所知道的周边的会c的同学&#xf…...

CAS实现原⼦操作的三⼤问题,该如何解决?

目录 1、ABA问题 2.循环时间长开销大 3、只能保证一个共享变量的原子操作 总结&#xff1a; CAS&#xff08;Compare-and-Swap&#xff09;是一种用于实现原子操作的技术&#xff0c;但是它存在着三个主要的问题&#xff1a;ABA问题、循环时间长开销大、只能保证一个共享变…...

Linux Shell 实现一键部署二进制go+caddy+filebrowser

filebrowser filebrowser 是一个使用go语言编写的软件&#xff0c;功能是可以通过浏览器对服务器上的文件进行管理。可以是修改文件&#xff0c;或者是添加删除文件&#xff0c;甚至可以分享文件&#xff0c;是一个很棒的文件管理器&#xff0c;你甚至可以当成一个网盘来使用。…...

无人机巡检智能一体化解决方案

随着无人机技术的不断发展&#xff0c;无人机应用领域已经越来越生活化&#xff0c;其产品不仅在军事、商业等领域得到了广泛应用&#xff0c;也在普通人的生活中得到了广泛应用。无人机的自动巡检是无人机应用的一个重要方向&#xff0c;具有广阔的发展前景&#xff0c;本文将…...

2023-2029全球粘结剂喷射技术行业调研及趋势分析报告

2022年全球粘结剂喷射技术市场规模约5.8亿元&#xff0c;2018-2022年年复合增长率CAGR约为 %&#xff0c;预计未来将持续保持平稳增长的态势&#xff0c;到2029年市场规模将接近12亿元&#xff0c;未来六年CAGR为11.3%。 本文调研和分析全球粘结剂喷射技术发展现状及未来趋势&a…...

Python每日一练(20230420)

目录 1. 数组逐位判断 &#x1f31f; 2. 交错字符串 &#x1f31f;&#x1f31f; 3. 二进制求和 &#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 数组逐位判断 比如…...

【社区图书馆】读《悲惨世界》有感

文章目录 故事简介经典重现价值取向我的思想 故事简介 《悲惨世界》是一部充满了悲剧的小说&#xff0c;故事首先由教堂展开&#xff0c;然后主要围绕着主人公冉阿让进行一系列的生动形象的描写&#xff0c;讲述了冉阿让悲惨的一生。 主人公冉阿让是一个诚实、善良的工人&…...

随机蛙跳算法 (SFLA)简单实现(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 随着计算机科学与技术的迅速发展,人类生存空间的扩大以及认识与改造世界范围的拓宽,人们对科学技术提出了新的和更高的要求,其…...

【手把手做ROS2机器人系统开发二】熟悉ROS2基本命令

【手把手做ROS2机器人系统开发二】熟悉ROS2基本命令 目录 【手把手做ROS2机器人系统开发二】熟悉ROS2基本命令 一、上讲回顾 二、ROS2核心命令讲解 1、daemon-各种守护进程相关的子命令 2、node-各种节点进程相关的子命令 3、pkg-各种包进程相关的子命令 4、run运行特定软…...

如何训练个人的ChatGpt4

如何在自己的计算机上安装类似 ChatGPT 的个人 AI 并在没有互联网的情况下运行它 个人 AI 的“第一台 PC”时刻 这是个人AI的“第一台PC”时刻&#xff0c;随之而来的是限制&#xff0c;就像在车库里生产第一台Apple 1一样。你是先驱。今天&#xff0c;任何人都可以使用私人和…...

Rabbit与springboot整合-1

目录 1、整体结构 2、pom引入 3、配置文件 4、代码 公共类 controller类 JSON转换类 监听-接收发送消息类 1、整体结构 2、pom引入 <!--rabbitmq--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-st…...

项目沟通管理5大技巧 第4个很重要

1、充分使用twitter管理沟通模型 项目沟通会议可以充分使用witter的管理沟通模型&#xff0c;提高会议沟通效率。使用此模型&#xff0c;主要是有三步&#xff1a; 第一步&#xff1a;倾听&#xff0c;项目经理需要保持中立的立场&#xff0c;不先表态&#xff0c;让团队成员畅…...

vector(入门知识点)

目录 vector的介绍 ​编辑 例&#xff1a;遍历 拷贝&#xff1a; 初始化&#xff1a; 反向迭代器&#xff1a; 扩容&#xff1a; insert与erase vector的介绍 例&#xff1a;遍历 拷贝&#xff1a; 初始化&#xff1a; &#xff08;10个1&#xff09; vector<int>注意…...

成人高考专业怎么选?看这三点

专业选得好&#xff0c;以后学习、考试和就业都会走得更加顺畅。 想简单拿个大专或者本科学历文凭&#xff0c;最好选择容易毕业的&#xff0c;比如工商管理、行政管理文史类专业&#xff0c;相对简单容易。 为了满足考证需要的&#xff0c;选对口的专业&#xff0c;比如要考一…...

设计模式:UML中的类图(6种关系)

一.UML图介绍 统一建模语言是用来设计软件的可视化建模语言。它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息。 UML 从目标系统的不同角度出发&#xff0c;定义了用例图、类图、对象图、状态图、活动图、时序图、协作图、构件图、部署图等 9 种图。 二.类图…...

00后卷王的自述,我真有同事口中说的那么卷?

前言 前段时间去面试了一个公司&#xff0c;成功拿到了offer&#xff0c;薪资也从14k涨到了20k&#xff0c;对于工作都还没几年的我来说&#xff0c;还是比较满意的&#xff0c;毕竟一些工作5、6年的可能还没我高。 我可能就是大家口中的卷王&#xff0c;感觉自己年轻&#xf…...

VS2022配置OpenGL+GLAD

Glew&#xff08;The OpenGL Extension Wrangler Library&#xff09;是对底层OpenGL接口的封装&#xff0c;可以让你的代码跨平台。Glad与Glew作用相同&#xff0c;可以看作它的升级版。 Freeglut&#xff08;OpenGL Utility Toolkit&#xff09;主要用于创建并管理窗口和Ope…...

【Proteus仿真】SRF04超声波阈值预警系统设计与LCD1602交互实现

1. SRF04超声波测距原理与硬件连接 SRF04超声波模块是工业测距的经典选择&#xff0c;它通过发射40kHz的声波并计算回波时间差来测量距离。在实际项目中&#xff0c;我发现很多初学者容易忽略声速受温度影响的问题——常温下声速约343m/s&#xff0c;但温度每升高1℃&#xff0…...

Lacinia错误处理最佳实践:构建健壮GraphQL API的10个技巧

Lacinia错误处理最佳实践&#xff1a;构建健壮GraphQL API的10个技巧 【免费下载链接】lacinia GraphQL implementation in pure Clojure 项目地址: https://gitcode.com/gh_mirrors/la/lacinia Lacinia作为纯Clojure实现的GraphQL库&#xff0c;为开发者提供了构建高效…...

Wonder3D完整教程:如何用单张图片快速生成3D模型

Wonder3D完整教程&#xff1a;如何用单张图片快速生成3D模型 【免费下载链接】Wonder3D Single Image to 3D using Cross-Domain Diffusion for 3D Generation 项目地址: https://gitcode.com/gh_mirrors/wo/Wonder3D 想要将一张普通的图片变成立体的3D模型吗&#xff1…...

77种商品-图像分类数据集

77种商品图像分类数据集 数据集(文章最后关注公众号获取数据集): 链接: https://pan.baidu.com/s/1Xcj5Z-RSUjGH47OIbH5wjQ?pwd=fq2p 提取码: fq2p 数据集信息介绍: 以下是整理后的清晰呈现,按照商品名称首字母顺序进行排列: 东方树叶红茶:文件夹中的图片数量为 150 …...

嵌入式开发中的模拟信号处理:ADC、DAC与PWM核心原理与CircuitPython实战

1. 项目概述&#xff1a;从数字世界到物理世界的桥梁在嵌入式开发的世界里&#xff0c;我们写的代码最终是要和物理世界打交道的。物理世界是连续的、模拟的——光线强弱、温度高低、声音大小&#xff0c;这些都不是简单的“开”或“关”&#xff0c;而是平滑变化的连续量。而我…...

考公学习追踪器:用数据驱动备考,打造个人学习仪表盘

1. 项目概述&#xff1a;一个为“考公”学子量身定制的学习追踪器如果你正在准备公务员考试&#xff0c;或者身边有朋友在“考公”&#xff0c;那你一定对那种“学了忘&#xff0c;忘了学”的循环深有体会。行测的题海、申论的素材、时政的热点&#xff0c;每天的学习任务像一座…...

信号处理库mattbaconz/signal:实现优雅停机与进程通信的跨平台解决方案

1. 项目概述&#xff1a;一个信号处理与通信的瑞士军刀最近在GitHub上看到一个挺有意思的项目&#xff0c;mattbaconz/signal。光看名字&#xff0c;你可能会联想到那个知名的加密通讯应用&#xff0c;但点进去你会发现&#xff0c;这是一个完全不同的技术世界。这是一个由开发…...

上海国际航运研究中心:全球绿色航运发展报告(2024-2025)

本报告由上海国际航运研究中心与世界海事大学联合编制&#xff0c;聚焦 2024 年 1 月至 2025 年 9 月全球绿色航运发展&#xff0c;围绕政策、机制、清洁能源、减排技术、发展趋势五大核心展开&#xff0c;全面呈现航运业低碳转型的全球格局、关键进展与挑战。一、核心政策&…...

不止是记事本!Win10右键新建菜单终极自定义指南:排序、删除、添加任意文件类型

不止是记事本&#xff01;Win10右键新建菜单终极自定义指南&#xff1a;排序、删除、添加任意文件类型 在Windows 10的日常使用中&#xff0c;右键新建菜单可能是最容易被忽视却高频使用的功能之一。想象一下这样的场景&#xff1a;你刚刚安装了一款专业设计软件&#xff0c;却…...

终极Cybersources渗透测试工具大全:从Web应用到网络安全的全面覆盖指南

终极Cybersources渗透测试工具大全&#xff1a;从Web应用到网络安全的全面覆盖指南 【免费下载链接】cybersources A curated list of cybersecurity tools and resources. 项目地址: https://gitcode.com/gh_mirrors/cy/cybersources Cybersources是一个精心策划的网络…...