Skip to main content

组合控件 - InputField

Text版本的InputField组件在新版本Unity中并不能够直接通过UI复选框里创建了,已经被TMP(TextMeshPro)版本的InputField代替;但是其能够实现的功能与主要参数是一样的;你也可以选择手动添加Text脚本;

InputField(输入字段)是用来处理玩家文本输入相关交互的组件

InputField组成:

  • 父对象:InputField组件的依附对象,Image组件依附作为背景
    • 子对象:“提示输入”Text组件
    • 子对象:“默认文本”Text组件 

InputField参数:

Interactable:是否接收输入
Transition:用户输入过渡效果
TextComponent:指定用于显示用户输入内容的Text对象,直接创建的InputField控件默认已经指定好了
Text:文字输入框的默认显示文字
Character Limit:可以输入的字符最大长度,默认0则不做限制
Content Type:输入的字符类型限制
Line Type:行类型
Placeholder:指定用于显示提示输入内容(在未进行输入前显示的文本)的Text对象,直接创建的InputField控件默认已经指定好了
Read Only:只读模式

仅介绍常用的功能参数,这里并不是所有参数,同时TMP中的InputFidel组件重点参数也有这些,是通用的。

代码相关:

引用:using UnityEngine.UI;
类名:InputField

事件监听:

通过直接拖拽添加对象,InputField和Toggle等组件监听有些不同:

  • OnValueChanged:值更改时执行,玩家每输入一个字符就会调用一次
  • OnEndEdit:结束编辑后执行,玩家结束输入调用一次
  • OnSubmit:玩家提交字段时调用
  • OnSelect:选中时执行(仅限TMP)
  • OnDeselect:取消选中时执行(仅限TMP)

通过inputField.onValueChanged.AddListener(); 参数填写指定委托函数或匿名函数,此时这里时用的onValueChanged监听,则会在值更改时调用,同时onValueChanged可以更改为上述任意监听方式。