web-dev-qa-db-fra.com

Obtenir le texte du champ de saisie dans Unity3D avec C #

J'essaie d'obtenir un texte à l'intérieur d'un champ inputField dans Unity3D avec C#.

J'ai placé un champ inputField dans mon éditeur, renommé et étiqueté dans: Username_field .

Ma question est la suivante: comment obtenir le texte à l'intérieur de la variable InputField Username_field dans un script C#?

11
Mirko Brombin

Attachez le script monobehaviour ci-dessous à votre gameObject 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);
    }
}

Voir aussi ci-dessous l'animation:

enter image description here

32
David

Vous pouvez utiliser l'événement "On Value Change" ou "End Edit" de InputField

La documentation de Unity3D fournit plus de détails sur l'utilisation d'un objet UnityEvent: http://docs.unity3d.com/Manual/UnityEvents.html

Sinon, vous devriez également pouvoir accéder au texte à l'aide de la propriété Text du contrôle Text auquel votre InputField est attaché. 

2
Botz3000
using UnityEngine.UI;
public InputField betInput;
void Start () {
    betInput.onEndEdit.AddListener(delegate { inputBetValue(betInput); });
}
public void inputBetValue(InputField userInput)
{
    betValue = int.Parse(userInput.text);
    Debug.Log(userInput.text);
}

https://i.stack.imgur.com/CeF1a.png // Ceci est l'image de l'unité où vous sélectionnez la méthode . Il est également intéressant de vérifier https://unity3d.com/ apprendre/tutoriels/sujets/scripts/saisie de texte } _

0
StaticVoid