Jump to content
Unity Insider Forum

Text mit Funktion Ändern


Athene

Recommended Posts

Hey, 

Ich hab mal wieder ein Problem: Ich hab einen Text (Als TextMeshPro UGUI), jetzt hab ich den Text in der Start Funktion mit Name.SetText beschrieben. Das funktioniert auch soweit. Jetzt möchte ich den aber in folgenden Funktionen ändern und habe jetzt mit Name.text gearbeitet, allerdings funktioniert das nicht. Gibt's da irgendwelche Tipps?

Danke schonmal im Vorraus.

Link to comment
Share on other sites

Name.text = "neuer Text" 

so sollte es doch gehen...wobei "neuer Text" auch eine Variable sein kann, aber bitte eine string-Variable. Oder casten, wenn notwendig....

Name.text = intVariable.toString(); 

 

edit: casten -> casting bedeutet du änderst den Typ einer Variable. Hinweis: Das sollte man an zeitkritischen Stellen nicht machen :) 

Link to comment
Share on other sites

vor 3 Stunden schrieb Athene:

...aber auf die Idee das mit einer Variable zu machen bin ich noch nicht gekommen

🤣 du bist lustig....wie hast du es den bis jetzt gemacht? Ich meine Variable sind die Grundpfeiler der Programmierung. Erst durch die Möglichkeit Werte in Speicher zu schreiben und zu lesen sind die Computer zu dem geworden was sie heute sind 😆

Zeig mal etwas Code, dann kann dir besser geholfen werden... 🙂

Link to comment
Share on other sites

Hallo

 

Ich verstehe nicht, was du machen willst und was du bisher versucht hast. Die Funktion Entscheidung wird in deinem Code nicht aufgerufen. Btw. sind Screenshots nicht so gut. Füge den Code doch einfach ein. Dafür gibt es den <> Button hier im Forum. 

 

Es reicht auch, wenn du beschreibung.text = Text schreibst. Die Benennung deiner Variablen ist auch inkonsistent, was es schwerer macht, den Code zu lesen.

 

Christoph

Link to comment
Share on other sites

Hey, 

Ich versuche den Text, der angezeigt werden soll zu ändern wenn der Spieler etwas bestimmtes eintippt. Die Funktion Entscheidung ist am Input Feld und das mit dem Debug.Log funktioniert in dieser Funktion auch, nur nicht das ändern des Textes.

Link to comment
Share on other sites

Ohne jetzt viel darüber nachzudenken, direkt einmal der Hinweis: Bei TextMeshPro immer als Komponententyp TMP_Blub nehmen. Wenn's nicht mit "TMP_" anfängt, kann es immer Probleme geben. Hier also statt TextMeshProUGUI bitte "TMP_Text" nehmen.

@gombolo Nö, oben steht ja "using TMPro;", damit geht's auch.

Link to comment
Share on other sites

Hallo

 

Da können wir uns streiten. txt als Präfix finde ich komplett unnötig und schrecklich.

Wenn du zum Debug kommst, dann mach doch mal:

Debug.Log(beschreibung.text);
beschreibung.text = "Lala";
Debug.Log(beschreibung.text);

Oder nutze Breakpoints und hangele dich durch den Code.

 

Christoph

Link to comment
Share on other sites

vor 4 Minuten schrieb chrische5:

Da können wir uns streiten. txt als Präfix finde ich komplett unnötig und schrecklich.

Meinst du jetzt TMP? Das ist halt meiner Erfahrung nach keine Geschmackssache, sondern der Unterschied zwischen "funktioniert" und "funktioniert nicht", je nach Situation.

Link to comment
Share on other sites

vor 4 Minuten schrieb chrische5:

Da können wir uns streiten. txt als Präfix ....

 

Naja, das sollte auch nicht die Lösung sein :)  ich habe nur das using TMPro übersehen und wollte nur schnell was tippen. Also nicht irritieren lassen ist nur der Name einer Variablen und hat nichts mit dem ursprünglichen Problem zu tun.

Link to comment
Share on other sites

vor 5 Minuten schrieb Sascha:

Meinst du jetzt TMP? Das ist halt meiner Erfahrung nach keine Geschmackssache, sondern der Unterschied zwischen "funktioniert" und "funktioniert nicht", je nach Situation.

Hallo.

 

Nein, das ist klar. Ich meinte den Namen der Variable, den @gombolo nutze.

 

Christoph

Link to comment
Share on other sites

vor 2 Stunden schrieb Sascha:

Ohne jetzt viel darüber nachzudenken, direkt einmal der Hinweis: Bei TextMeshPro immer als Komponententyp TMP_Blub nehmen. Wenn's nicht mit "TMP_" anfängt, kann es immer Probleme geben. Hier also statt TextMeshProUGUI bitte "TMP_Text" nehmen.

@gombolo Nö, oben steht ja "using TMPro;", damit geht's auch.

 

Ach du meinst so z.B? 

using TMPro; // Importiere das TMPTextMesh Namespace

public class TextController : MonoBehaviour
{
    public TMP_Text textMesh; // Referenz zum TMPTextMesh-Komponente im Editor

    void Start()
    {
        string text = GetDynamicText(); // Rufe die Methode GetDynamicText auf und speichere den zurückgegebenen Text in einer Variablen
        textMesh.SetText(text); // Setze den Text des TMPTextMesh auf den zurückgegebenen Text aus der Methode
    }

    string GetDynamicText()
    {
        // Hier wird eine Beispiel-Logik verwendet, um einen dynamischen Text zu erstellen
        string dynamicText = "Heute ist der " + System.DateTime.Now.ToString("dd.MM.yyyy") + ".";
        return dynamicText;
    }
}

@Athene dieser Code erstellt dynamisch einen Text. In diesem Fall wir ein Text mit dem heutigen Datum erstellt. 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...