Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get text from Input field in Unity3D with C#

I'm trying to get a text inside an inputField in Unity3D with C#.

I've placed an inputField in my editor, renamed and tagged in: Username_field.

My question is: How i can get the text inside the InputField Username_field in a C# script?

like image 886
Mirko Brombin Avatar asked Feb 02 '15 07:02

Mirko Brombin


2 Answers

Attach below monobehaviour script to your InputField gameObject:

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);
    }
}

See also below animation:

enter image description here

like image 140
David Avatar answered Oct 03 '22 20:10

David


You can use the "On Value Change" or "End Edit" event of the InputField.

The Unity3D documentation provides more detail on how to use a UnityEvent: http://docs.unity3d.com/Manual/UnityEvents.html

Alternatively, you should also be able to access the Text using the Text property of the Text control that your InputField is attached to.

like image 44
Botz3000 Avatar answered Oct 03 '22 20:10

Botz3000