Die Fehlermeldung „Tag is not defined“ wirkt zunächst wie ein kompliziertes Technikproblem. In Wahrheit geht es jedoch nur um einen fehlenden oder falsch geschriebenen Tag-Namen im Projekt. Besonders häufig tritt dieser Fehler auf, wenn im Script ein Objekt wie „MovingPlattform“ abgefragt wird. Dabei handelt es sich nicht um einen speziellen Unity-Typ, sondern lediglich um ein frei vergebenes Label.
Was ein Tag in Unity wirklich ist
Ein Tag dient ausschließlich zur Identifikation von GameObjects. Wenn im Code CompareTag("MovingPlattform") steht, bedeutet das lediglich: Führe diesen Code aus, wenn das Objekt genau diesen Tag trägt. Der Tag bestimmt kein Verhalten und verleiht dem Objekt keine besonderen Eigenschaften. Er ist nur eine Kennzeichnung.
Warum die Fehlermeldung entsteht
Unity überprüft bei CompareTag, ob der angegebene Name im Tag Manager existiert. Ist das nicht der Fall, wird sofort eine Fehlermeldung ausgegeben. Dabei ist die Schreibweise entscheidend. Tags sind case-sensitive. Schon ein einzelner Buchstabe Unterschied genügt, um den Fehler auszulösen.
Muss das Objekt wirklich eine bewegte Plattform sein
Nein. Der Name „MovingPlattform“ ist lediglich ein frei gewählter Tag. Das Objekt muss sich nicht bewegen. Es muss nur exakt diesen Tag tragen, wenn das Script danach fragt. Wer keine spezielle Logik für bewegte Plattformen benötigt, kann stattdessen auch einen allgemeinen Tag wie „Ground“ verwenden oder die Abfrage ganz entfernen.
Wann ein eigener Plattform-Tag sinnvoll ist
Ein separater Tag lohnt sich, wenn du unterschiedliche Bodenarten behandeln möchtest. Beispiele:
- bewegte Plattformen, bei denen der Spieler mitgeführt wird
- spezielle Effekte nur auf bestimmten Plattformen
- getrennte Kollisionslogik zwischen Boden und anderen Objekten
Ohne solche Anforderungen genügt oft ein einheitlicher Boden-Tag.
Strukturierte Tags vermeiden Probleme
Eine klare Tag-Struktur hilft langfristig. Typische Beispiele:
- Ground für festen Boden
- MovingPlatform für bewegliche Plattformen
- Enemy für Gegner
- Pickup für Sammelobjekte
Mit dieser Struktur bleibt der Code übersichtlich und Fehlermeldungen lassen sich schnell einordnen.
Fazit
Ein Tag in Unity ist lediglich ein Identifikationslabel. Das GameObject muss keine besondere Plattform-Art sein, sondern nur den im Script verwendeten Namen tragen. Die Fehlermeldung entsteht ausschließlich, wenn dieser Tag im Projekt nicht existiert oder falsch geschrieben ist. Wer Tags bewusst anlegt und konsistent verwendet, vermeidet solche Probleme zuverlässig und sorgt für saubere, wartbare Scripts.
Weiterführende Informationen findest du in der offiziellen Dokumentation zu Tags in Unity.
Weitere Artikel auf Games und Lyrik: Runaway 3: The Twist of Fate
