A tag is a reference word which you can assign to one or more GameObjects. For example, you might define “Player” tags for player-controlled characters and an “Enemy” tag for non-player-controlled characters. You might define items the player can collect in a Scene with a “Collectable” tag. You can use any word you want as a tag. You can even use short phrases, but you might need to widen the Inspector to see the tag’s full name. A GameObject can only have one tag assigned to it.
Tags help you identify GameObjects for scripting purposes. They ensure you don’t need to manually add GameObjects to a script’s exposed properties with drag and drop, so you save time when you use the same script code in multiple GameObjects.
Tags are useful for triggers in Collider control scripts that need to determine if the player interacts with an enemy, a prop, or a collectable, for example.
You can use the GameObject.FindWithTag function to find any GameObject that contains a tag you specify. The following example uses GameObject.FindWithTag()
. It instantiates respawnPrefab
at the location of GameObjects with the “Respawn” tag.
using UnityEngine;
using System.Collections;
public class Example : MonoBehaviour {
public GameObject respawnPrefab;
public GameObject respawn;
void Start() {
if (respawn == null)
respawn = GameObject.FindWithTag("Respawn");
Instantiate(respawnPrefab, respawn.transform.position, respawn.transform.rotation) as GameObject;
}
}
The Inspector displays the Tag and Layer dropdown menus below the name of a GameObject.
To create a new tag, select Add Tag…. This opens the Tag and Layer Manager in the Inspector. Once you name a tag, it can’t be renamed later.
Layers are similar to tags, but are used to define how Unity renders GameObjects in the Scene. Refer to documentation on the Layers page for more information.
The Inspector shows the Tag and Layer dropdown menus just below the name of a GameObject. To apply an existing tag to a GameObject, open the Tags dropdown and choose the tag you want to apply. The GameObject is now associated with this tag.
The Editor includes the following built-in tags which don’t appear in the Tag Manager: * Untagged * Respawn * Finish * EditorOnly * MainCamera * Player * GameController
The Editor caches GameObjects tagged with the MainCamera tag internally. When you access Camera.main, the Editor returns the first valid result from its cache. Refer to Camera.main to learn more.
GameObjects tagged with EditorOnly are destroyed when the game is built.
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.