Unity中InputField的使用

时间:2024-04-08 17:25:28

InputField属于UGUI中的UI,代码使用时,需要先调用using unityEngined.UI,否则在代码中无法寻找到InputField,一般是我们用这个是做登录面板的,所以讲一下如何接受用户所给的信息,并且对信息进行相应的操作。
Unity中InputField的使用
Interactable :当前输入框是否可用
Character Limit(字符数量限制):限定此输入域最大输入的字符数,0为不限制。
On Value Changed:值改变时触发消息。
End Edit:结束编辑时触发消息。
详细的介绍,可以参考:Unity官方使用手册
其中ContentType(内容类型)中有各种的内容格式,如果你是作为密码输入的话,可以选择password,这样输入的密码是不可见的。
其次就是代码,首先是通过代码找到这个组件,
一般是写transform.find("XXX").gameObject.GetComponent<InputField>()//这个时候你就可以对其进行控制了我们要得到InputField框内输入的内容,就需要对用户输入的内容进行监听,然后将监听到的内容进行个人的判断(这里的判断主要看个人要对用户的输入有什么要求及其处理)
代码如下:

private string valueText;
private string endValue;

transform.GetComponent<InputField>().onValueChanged.AddListener(ChangedValue);//用户输入文本时就会调用
transform.GetComponent<InputField>().onEndEdit.AddListener(EndValue);//文本输入结束时会调用
//用户输入时的变化
private void ChangedValue(string value)
{
 valueText=value;//将用户输入的值赋值给内部的空字符串,我们可以将其来进行后续的操作
 Debug.Log("输入了"+value);
 }
 private void EndValue(string value)
 {
  endValue=value;//捕捉数据,方便后续操作
  Debug.Log("最终内容"+value);
  }

然后运行时就会发现,在输入时就会打印ChangedValue中的Debug,输入结束时会打印EndValue中的Debug。