在Unity3D中使用C#从输入字段获取文本

19

我正在尝试在Unity3D中使用C#获取一个输入框中的文本。

我已经在编辑器中放置了一个,并将其重命名和标记为:Username_field

我的问题是:如何在C#脚本中获取 Username_field中的文本?


我已经能够使用InputField.value来实现。例如:String s = myInputField.value 获取值,或myInputField.value = "Test" 设置值。 - jadkins4
3个回答

41
请将下面的Monobehaviour脚本附加到您的InputField游戏对象上:
public class test : MonoBehaviour {
    void Start ()
    {
        var input = gameObject.GetComponent<InputField>();
        var se= new InputField.SubmitEvent();
        se.AddListener(SubmitName);
        input.onEndEdit = se;

        //or simply use the line below, 
        //input.onEndEdit.AddListener(SubmitName);  // This also works
    }

    private void SubmitName(string arg0)
    {
        Debug.Log(arg0);
    }
}

请参见下面的动画:

enter image description here


4

在Unity 2017中,您必须使用InputField的文本组件(String myText = myInputField.GetComponent<InputField>().text;),而不是子文本的文本组件,否则例如密码字段将仅返回星号(*)。 这方面有一个警告在这里 - Neph

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接