【unity游戏开发入门到精通——UGUI】文本输入控件——TextMeshPro-InputField新文本输入控件

注意:考虑到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);
        });
    }
}

通过代码就不需要像前面一样手动绑定了,只要挂载前面编写的脚本即可
在这里插入图片描述

运行游戏即可
在这里插入图片描述


专栏推荐

地址
【unity游戏开发入门到精通——C#篇】
【unity游戏开发入门到精通——unity通用篇】
【unity游戏开发入门到精通——unity3D篇】
【unity游戏开发入门到精通——unity2D篇】
【unity实战】
【制作100个Unity游戏】
【推荐100个unity插件】
【实现100个unity特效】
【unity框架/工具集开发】
【unity游戏开发——模型篇】
【unity游戏开发——InputSystem】
【unity游戏开发——Animator动画】
【unity游戏开发——UGUI】
【unity游戏开发——联网篇】
【unity游戏开发——优化篇】
【unity游戏开发——shader篇】

完结

好了,我是向宇,博客地址:https://xiangyu.blog.csdn.net,如果学习过程中遇到任何问题,也欢迎你评论私信找我。

赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注,你的每一次支持都是我不断创作的最大动力。当然如果你发现了文章中存在错误或者有更好的解决方法,也欢迎评论私信告诉我哦!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

向宇it

创作不易,感谢你的鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值