Peanut Geschrieben 24. Mai 2019 Melden Share Geschrieben 24. Mai 2019 Hallöchen Liebes UnityForum, ich habe ein Problemchen mit TextMeshPro.Unzwar möchte ich das UI Text Element von TextMeshPro in einem Script benutzen das meine Wellen an Gegner zählt und an einem Gameobject gebunden ist.Nun habe ich schon das gefühlt halbe Internet durchforstet und habe nichts gefunden um das Problem zu lösen. Vielleicht könnt ihr mir ja helfen . Ist wahrscheinlich etwas komplett Banales. public TextMeshProUGUI WaveNummer; private void Start() { F_waveCountdown = F_timeBetweenWaves; WaveNummer = gameObject.GetComponent<TextMeshProUGUI>(); } void Update() { WaveNummer.text= "Wave" + I_nextWave; Das ist der relevante Code. Ich habe natürlich das package TMPro implementiert. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
malzbie Geschrieben 25. Mai 2019 Melden Share Geschrieben 25. Mai 2019 Deine Fehlermeldung bedeutet IMMER dass auf etwas zugegriffen werden soll was aber nicht bekannt ist. Unity schmeißt dir immer auch die Zeile im Code raus, wo dieser Zugriff stattfindet. Da kann man also leicht erkennen, um welches Objekt oder Komponente es sich handelt. Wenn dein Codebeispiel nur dieses TextMeshProGUI ansprechen will, dann ist es dieses auch. Komisch ist jetzt an deinem Beispiel, dass du oben ja eine public Variable bildest, wo du über den Inspector einfach das Textmesh rein legen könntest. In der Start Methode versuchst du aber dann eine Referenz zu bilden, indem du davon aus gehst, dass das Textmesh genau auf diesem GameObject liegt, wo auch dieses Script liegt. Aber da wird es wohl nicht liegen. Ja und selbst wenn du via Inspector das Textmesh der Variable zugewiesen hast, es aber nicht auf diesem GO liegt, würdest du in der Start die Variable WaveNumber überschreiben. Und zwar mit "null". WaveNummer hätte jetzt also keine Referenz und deswegen kommt der Fehler. Fazit: Dein Textmesh und dein Script liegen nicht auf dem gleichen GameObject! Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Peanut Geschrieben 25. Mai 2019 Autor Melden Share Geschrieben 25. Mai 2019 Ja genau das ist mein Problem. Das Script soll nicht auf dem Gameobject liegen Die Exception wird durch diese Zeile ausgelöst (hätte ich dazu schreiben sollen) : WaveNummer.text= "Wave" + I_nextWave; Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
malzbie Geschrieben 25. Mai 2019 Melden Share Geschrieben 25. Mai 2019 Wenn es nicht da liegen soll und dann wohl auch nicht liegt, dann kannst du in der Start auch nicht über gameObjct.GetComponent<> versuchen eine Referenz zu bilden. Verstehst du das? gameObject ist das GameObject auf dem das Script liegt. Also quasi der Vatter! Hat dieses GameObject kein Textmesh, kann es auch nicht mit GetComponent gefunden werden, denn es ist ja keine Textmesh Komponente auf dem Gameobject. Und weil das so ist, wird deine Variable nach dem Versuch null sein! Egal ob sie vorher eine Referent zum Textmesh hatte. Leg einfach dein Textmesh im Inspector auf den Slot vom Script und nimm die Zeile in der Start raus. Schon wird's gehen. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Peanut Geschrieben 26. Mai 2019 Autor Melden Share Geschrieben 26. Mai 2019 Jop hat geklappt 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.