Jump to content
Unity Insider Forum

Input Feld Mehrere Funktionen


Athene

Recommended Posts

Hi,

Ich habe da eine Frage. Ich möchte versuchen mit dem Input Feld zu arbeiten und bis jetzt klappt das auch ganz gut. Allerdings möchte ich jetzt, dass wenn der Spieler eine Sache eingibt, die eine Funktion aufgerufen wird, und gibt er in das gleiche Feld etwas anderes ein, wird eine andere Funktion aufgerufen. Wie ist das möglich? 

Danke schonmal im Vorraus.

Link zu diesem Kommentar
Auf anderen Seiten teilen

🤔 hmmm...meinst du so was? Kann man den eigegebenen Text nicht prüfen? Oder ist es eine Freitexteingabe...dann müsstest du den Satz parsen und die einzelnen Elemente untersuchen...aber die einfach Variante ist wohl diese ->

if text =="essen"

dann essen();

if text == "trinken"

dann trinken();

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

1.  Erzeuge ein InputField

2. Erzeuge ein Leeres GameObject und nenne es zum Beispiel  „Eingabe „, weise dem GameObject

Dieses Beispiel Script zu.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class InputAuswertung : MonoBehaviour
{
   

    public void Auslesen(string input) // Muss public sein um im Inspector ausgewält werden zu können
    {
       
       if (input.Equals("Wer")) // ist input = Wer ?  gibt true zurück wenn Ja
        {
            Wer(); // aufruf der Wer() Methode
        }

       else if (input.Equals( "was")) // ist input = was ?  gibt true zurück wenn Ja
        {
            was(); // aufruf der was() Methode
        }
        else // wenn nicht tue dieses
        {
            Debug.Log("Falsche Eingabe !");
        }
    }

    //***********************************
    private void Wer()
    {
        Debug.Log("Die Methode Wer() wurde Aufgerufen");
    }

    //****************************************
    private void was()
    {
        Debug.Log("Die Methode was() wurde Aufgerufen");
    }

}

 

3. Im Inspektor gehst du bei InputField auf OnEndEdit(String) auf das + Zeichen und machst einen Linksklick . Bei None(Object) ziehst du das GameObject „ Eingabe“

 bei  No Function wählst du

InputAuswertung  -> Auslesen aus.

OnEndEdit(String)  löst ein Event aus wenn die Eingabe mit der Returntaste oder einem Klick außerhalb des Eingabefeldes beendet wurde und ruft die dort hinterlegte Methode auf.

Hoffe das es dir etwas Hilft.

 

Gruß Jog

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

vor 59 Minuten schrieb Athene:

Ich hab das jetzt so, aber beides funktioniert nicht. Wenn ich eines rausschmeißen funktioniert das schon. Ist das so überhaupt der richtige Ansatz?

Screenshot_20230227_160217_WhatsApp.jpg

Du hast auf einem InputField  2* ein Event liegen dadurch wird die magier und back Methode gleichzeitig ausgeführt,  z.b. würde set false und  set true

gleichzeitig gesetzt was natürlich Unsinn ist, und die Reihenfolge der Aufrufe ist auch nicht immer gleich. Deshalb ist es besser die Eingabe Auswertung im Script zu übernehmen. Siehe im obigem Beispiel.

 

Gruß Jog

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...