Metus Geschrieben 15. April 2015 Melden Share Geschrieben 15. April 2015 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 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 More sharing options...
Mese96 Geschrieben 15. April 2015 Melden Share Geschrieben 15. April 2015 Mit welcher GUI arbeitest du ? Mit dem neuen UI wäre dann ein Textfeld angebracht in dem du deie Variable ausgibst. Mit de ralten GUI wohl ein Label: http://docs.unity3d.com/ScriptReference/GUI.Label.html Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Metus Geschrieben 15. April 2015 Autor Melden Share Geschrieben 15. April 2015 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 More sharing options...
Hrungdak Geschrieben 16. April 2015 Melden Share Geschrieben 16. April 2015 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 More sharing options...
Metus Geschrieben 16. April 2015 Autor Melden Share Geschrieben 16. April 2015 Cool, Variante 1 hat bestens geklappt! Die hatte ich auch schon versucht, glaube aber da hatte ich vegessen den UI Namespace hinzuzufügen. Danke! Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.