注意
:考虑到UGUI的内容比较多,我将UGUI的内容分开,并全部整合放在【unity游戏开发——UGUI】专栏里,感兴趣的小伙伴可以前往逐一查看学习。
文章目录
前言
1、文本输入控件
文本输入控件是UGUI中用于处理玩家文本输入相关交互的关键组件。UGUI的文本输入控件可以分两为种——InputField旧文本输入控件、TextMeshPro-InputField新文本输入控件。
本文主要是介绍TextMeshPro-InputField新文本输入控件。
2、TextMeshPro-InputField新文本输入控件组成
默认创建的InputField由4个对象组成
- 父对象——TextMeshPro-InputField组件依附对象 以及 同时在其上挂载了一个Image作为背景图
- 子对象——Rect Mask 2D、TextMeshPro-Text(UI)文本显示组件(必备)、Placeholder默认显示文本组件(必备)。
一、TextMeshPro-InputField文本输入组件参数相关
1、文本设置
2、Input Field Settings 输入字段设置
3、控制设置
- OnFocus - Select All:聚焦-全选
- Reset On Deactivation:停用时重置
- Keep Text Selection:保持文本选择可见
- VisibleRestore On ESC Key:恢复按ESC键
- Should Activate On Select:选中时激活
- Hide Soft Keyboard:隐藏软键盘
- Hide Mobile Input:隐藏手机输入法
- Read Only:只读
- Rich Text:富文本
- Allow Rich Text Editing:允许富文本编辑
4、监听事件
二、TextMeshPro-InputField文本输入代码控制
命名空间
using TMPro;
获取TMP_InputField
TMP_InputField newInput = transform.GetComponent<TMP_InputField>();
获取设置输入
newInput.text = "";
三、InputField监听事件的两种方式
1、拖脚本监听事件
新增脚本,添加不同的函数,注意函数要有一个string类型的参数。
public void OnValueChanged(string str)
{
print("改变的输入内容:" + str);
}
public void OnEndEdit(string str)
{
print("结束输入时内容:" + str);
}
public void OnSelect(string str)
{
print("选中输入时内容:" + str);
}
public void OnDeselect(string str)
{
print("取消输入时内容:" + str);
}
选择动态的函数。注意不要选错了。
对文本输入框的任何输入都会调用值改变时的事件。
2、代码添加监听事件
新增脚本
using TMPro;
using UnityEngine;
public class NewMonoBehaviourScript : MonoBehaviour
{
void Start()
{
TMP_InputField inputField = GetComponent<TMP_InputField>();
inputField.onValueChanged.AddListener((str) =>
{
print("改变的输入内容:" + str);
});
inputField.onEndEdit.AddListener((str) =>
{
print("结束输入时内容:" + str);
});
inputField.onSelect.AddListener((str) =>
{
print("选中输入时内容:" + str);
});
inputField.onDeselect.AddListener((str) =>
{
print("取消输入时内容:" + str);
});
}
}
通过代码就不需要像前面一样手动绑定了,只要挂载前面编写的脚本即可
运行游戏即可
专栏推荐
完结
好了,我是向宇
,博客地址:https://xiangyu.blog.csdn.net,如果学习过程中遇到任何问题,也欢迎你评论私信找我。
赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注
,你的每一次支持
都是我不断创作的最大动力。当然如果你发现了文章中存在错误
或者有更好的解决方法
,也欢迎评论私信告诉我哦!