A tag is a reference word which you can assign to one or more GameObjectsThe fundamental object in Unity scenes, which can represent characters, props, scenery, cameras, waypoints, and more. A GameObject’s functionality is defined by the Components attached to it. More info
See in Glossary. 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 SceneA Scene contains the environments and menus of your game. Think of each unique Scene file as a unique level. In each Scene, you place your environments, obstacles, and decorations, essentially designing and building your game in pieces. More info
See in Glossary 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 ColliderAn invisible shape that is used to handle physical collisions for an object. A collider doesn’t need to be exactly the same shape as the object’s mesh - a rough approximation is often more efficient and indistinguishable in gameplay. More info
See in Glossary control scriptsA piece of code that allows you to create your own Components, trigger game events, modify Component properties over time and respond to user input in any way you like. More info
See in Glossary 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 InspectorA Unity window that displays information about the currently selected GameObject, asset or project settings, allowing you to inspect and edit the values. More info
See in Glossary displays the Tag and LayerLayers in Unity can be used to selectively opt groups of GameObjects in or out of certain processes or calculations. This includes camera rendering, lighting, physics collisions, or custom calculations in your own code. More info
See in Glossary 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:
Some built-in tags like MainCamera and EditorOnly have unique functions.
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.
A GameObject tagged with EditorOnly in a Scene is destroyed when the game builds. Any child GameObjects of a GameObject tagged with EditorOnly are also destroyed when the game builds.