Ein Tag kennzeichnet ein GameObject in Unity und erleichtert es dir, bestimmte Objekte gezielt zu erkennen. Statt dich in einem Script auf den Namen eines GameObjects zu verlassen, kannst du beispielsweise festlegen, dass deine Spielfigur das Tag Player trägt. Weitere typische Tags sind MainCamera, Respawn oder selbst angelegte Kennzeichnungen für Gegner und andere Spielelemente.
Tags und GameObject-Namen unterscheiden sich
Der Name eines GameObjects dient vor allem der Übersicht in der Hierarchy. Ein Tag erfüllt dagegen eine funktionale Aufgabe. Änderst du beispielsweise den Namen deiner Spielfigur von „Player“ zu „Susuwatari“, kann das GameObject weiterhin das Tag Player tragen. Ein Script, das nach diesem Tag sucht, muss deshalb nicht an den neuen Objektnamen angepasst werden.
Tags in Skripten abfragen
Besonders häufig kommen Tags bei Triggern und Kollisionen zum Einsatz. Stell dir eine Kohle vor, die nur von der Spielfigur eingesammelt werden darf. Betritt ein Collider den Triggerbereich, kann das Script zunächst prüfen, ob das zugehörige GameObject das Tag Player trägt.
Dafür stellt Unity unter anderem CompareTag() bereit. Eine einfache Prüfung kann so aussehen:
private void OnTriggerEnter2D(Collider2D other)
{
if (other.CompareTag("Player"))
{
Debug.Log("Der Spieler hat den Trigger betreten.");
}
}
Der Code reagiert nur dann mit der Ausgabe, wenn das eintretende GameObject entsprechend gekennzeichnet ist. Gegner oder andere Objekte können denselben Trigger berühren, ohne diese Bedingung zu erfüllen.
Tags selbst anlegen
Neben den bereits vorhandenen Tags kannst du eigene Kennzeichnungen erstellen. Im Inspector findest du dafür oben am GameObject das Feld Tag. Über die Verwaltung der Tags lassen sich zusätzliche Einträge anlegen und anschließend GameObjects zuweisen.
Sinnvolle Bezeichnungen orientieren sich an der Funktion der Objekte. Ein Projekt könnte beispielsweise Tags für Player, Enemy oder Collectible verwenden. Welche Einteilung sinnvoll ist, hängt von deiner Spielstruktur ab. Nicht jede Objektart benötigt automatisch ein eigenes Tag.
Ein GameObject trägt nur ein Tag
Ein GameObject kann immer nur ein Tag gleichzeitig besitzen. Soll ein Objekt mehreren Gruppen oder Eigenschaften zugeordnet werden, reichen Tags deshalb nicht in jedem Fall aus.
Angenommen, ein Gegner soll gleichzeitig als Gegner, fliegendes Objekt und Schadensquelle gelten. Drei Tags lassen sich ihm nicht parallel zuweisen. Solche Eigenschaften kannst du stattdessen über Komponenten, Layers oder deine eigene Spiellogik abbilden.
Tags und Layers erfüllen unterschiedliche Aufgaben
Tags und Layers erscheinen beide im oberen Bereich des Inspectors, erfüllen jedoch unterschiedliche Funktionen. Ein Tag dient hauptsächlich dazu, ein GameObject einer bestimmten Bedeutung oder Rolle zuzuordnen. Layers kommen unter anderem bei Physikabfragen, Raycasts und der Auswahl der von einer Kamera gerenderten Objektgruppen zum Einsatz.
Ein GameObject kann deshalb gleichzeitig das Tag Player und eine Layer namens Player besitzen. Obwohl beide gleich heißen können, handelt es sich um zwei getrennte Systeme.
MainCamera als wichtiges Beispiel
Ein bekanntes Beispiel findest du direkt bei der Standardkamera einer Unity-Szene. Unity kennzeichnet sie normalerweise mit dem Tag MainCamera. Dadurch kann ein Script gezielt auf die Hauptkamera zugreifen.
Der Name Main Camera und das Tag MainCamera sind voneinander unabhängig. Du kannst das Kameraobjekt in der Hierarchy umbenennen, ohne automatisch sein Tag zu verändern. Umgekehrt reicht der Name allein nicht aus, um einem anderen GameObject das MainCamera-Tag zuzuweisen.
Wie die Hauptkamera und ihre Komponenten zusammenspielen, erfährst du im Artikel Unity Main Camera – der Blick auf deine Spielwelt.
Tags gezielt statt für alles einsetzen
Tags eignen sich besonders für eindeutige Rollen, die du in verschiedenen Scripts wiedererkennen möchtest. Für komplexe Zustände oder zahlreiche Eigenschaften eines GameObjects sind eigene Komponenten häufig flexibler. Eine klare Trennung verhindert außerdem, dass im Laufe eines größeren Projekts immer mehr Tags entstehen, deren Aufgaben sich überschneiden.
Weitere Informationen zur Einrichtung und Verwaltung findest du im Unity-Handbuch zu Tags.
Andere Artikel auf Games und Lyrik: Runaway 3: A Twist of Fate
