태그는 하나 이상의 게임 오브젝트 에 할당할 수 있는 참조 단어입니다. 예를 들어 플레이어가 제어하는 캐릭터에 대해 ‘Player’ 태그를 정의하고 플레이어가 제어하지 않는 캐릭터에 대해 ‘Enemy’ 태그를 정의할 수 있습니다. ‘Collectable’ 태그를 사용하면 플레이어가 씬에서 수집할 수 있는 아이템을 정의할 수 있습니다. 원하는 어떤 단어든지 태그로 사용할 수 있습니다. 짧은 구절을 사용할 수도 있지만 이 경우 태그의 전체 이름을 보려면 인스펙터의 폭을 넓혀야 할 수도 있습니다. 하나의 게임 오브젝트에는 하나의 태그만 할당할 수 있습니다.
태그를 사용하면 스크립팅 목적으로 게임 오브젝트를 식별할 수 있습니다. 게임 오브젝트를 수동으로 스크립트의 노출된 프로퍼티에 드래그 앤 드롭으로 추가할 필요가 없게 되므로 여러 게임 오브젝트에 같은 스크립트 코드를 사용할 때 시간이 단축됩니다.
태그는 예를 들어 플레이어가 적, 프랍, 수집품과 상호 작용하는지 판단해야 하는 Collider 컨트롤 스크립트의 트리거에 유용합니다.
GameObject.FindWithTag 함수를 사용하여 지정한 태그가 포함된 게임 오브젝트를 찾을 수 있습니다. 다음 예시는 GameObject.FindWithTag()를 사용합니다. 게임 오브젝트의 위치에 ‘Respawn’ 태그를 사용하여 respawnPrefab을 인스턴스화합니다.
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;
}
}
인스펙터 에는 게임 오브젝트 이름 아래에 Tag 및 Layer 드롭다운 메뉴가 표시됩니다.
Add Tag… 를 선택하여 새 태그를 생성합니다. 인스펙터에서 Tag and Layer Manager가 열립니다. 태그의 이름을 지정하면 나중에 이름을 바꿀 수 없습니다.
레이어는 태그와 유사하지만 Unity가 씬에서 게임 오브젝트를 렌더링하는 방식을 정의하는 데 사용됩니다. 자세한 내용은 레이어 페이지의 기술 자료를 참조하십시오.
인스펙터 에는 게임 오브젝트 이름 바로 아래에 Tag 및 Layer 드롭다운 메뉴가 표시됩니다. 기존 태그를 게임 오브젝트에 적용하려면 Tags 드롭다운을 열고 적용할 태그를 선택합니다. 이제 게임 오브젝트가 이 태그와 연결됩니다.
에디터에는 태그 관리자에 표시되지 않는 일부 빌트인 태그가 있습니다.
MainCamera 및 EditorOnly와 같은 일부 빌트인 태그에는 고유한 기능이 있습니다.
에디터는 내부적으로 MainCamera 태그가 지정된 게임 오브젝트를 캐싱합니다. Camera.main에 액세스하면 에디터가 캐시의 첫 번째 유효한 결과를 반환합니다. 자세한 내용은 Camera.main을 참조하십시오.
씬에서 EditorOnly 태그가 지정된 게임 오브젝트는 게임이 구축될 때 파괴됩니다. EditorOnly로 태그가 지정된 게임 오브젝트의 자식 게임 오브젝트도 게임 구축 시 파괴됩니다.