Jump to content
Unity Insider Forum

Text von GUI Textfeld ändern via Script


Recommended Posts

Hallo zusammen,

 

ich habe das Gefühl, ich habe das ganze Internet abgesucht. Aber ich glaube es hapert an den richtigen Schlüsselwörtern oder meinem noch begrenzten Unity Wissen :D

 

Ich möchte via Script den Inhalt eines GUI Textes ändern. Ich möchte den Score meines Spielers ausgeben. Das ganze funktioniert schon, er zählt und spuckt es mir via Print(); auch in der Console aus.

Aber ich finde ums Verrecken nicht die richtige Methode, um den Score auch im UI wiederzugeben...

 

Wer kann mir helfen? :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sorry, mit dem neuen arbeite ich!

Und genau den Plan den du beschreibst hatte ich, aber ich habe nicht den blassesten Schimmer wie ich das machen könnte.... Ich finde auch einfach nix. Wie gesagt, ich glaube ich habe die falschen Suchbegriffe....

 

Ich kreigs irgendwie nicht hin, die Textfeld Variable anzusteuern

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du definierst in deinem Script einfach ein Textfeld. Dazu benötigst du

 

using UnityEngine.UI;

 

Anschließend kannst du im Script entweder ein Textfeld als public definieren, im Inspector das Textfeld dann ins Script ziehen und darauf zugreifen:

 

public Text myTextField;
void Start()
{
myTextField.text = "Blubber";
}

 

oder du holst dir die Canvas und suchst darin das Textfeld:

void Start()
{
	m_Canvas = FindObjectOfType<Canvas>();
	if (m_Canvas != null)
	{
		Text myText = m_Canvas.GetComponentsInChildren<Text>()
				 .Where(textField => textField.name == "ScoreText")
				 .First();
		myText.text = "Score";
	}
}

Voraussetzung: du hast nur eine Canvas. Ansonsten musst du die Canvas auch erst nach z.B. Name suchen.

 

Wahrscheinlich gibts eine einfachere Möglichkeit als GetComponentsInChildren, mal sehen, was andere sagen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...