유니티에서 사용하는 게임 오브젝트를 분류하기 위해 Tag와 Layer를 사용한다. 하지만 나는 지금껏 두 개를 구분짓지 않고 무분별하게 Tag만 사용했다는 생각이 들어 이번 기회에 정리해보자.
게임 오브젝트를 식별하는 용도
OnCollision 이나 OnTrigger 메소드 사용시 오브젝트를 식별할 수 있다. 이때는 CompareTag를 이용하도록 하자.
하지만, 문자열 비교 방식을 너무 많이 이용한다면 Garbage Collector가 호출되기 때문에 성능적인 문제를 일으킬 수도 있다.
오브젝트들의 그룹을 만들고 관리하는 용도
기능을 ARABOZA
선택적 렌더링
Main Camera - Culling Mask에서 특정 레이어만을 렌더링하도록 할 수 있다.
레이어 충돌 매트릭스
Project Settings - Physics에서 서로 충돌할 수 있는 레이어를 정의할 수 있다. 불필요한 연산을 하지 않도록 할 수 있다는 장점이 있다.
레이캐스팅 충돌
레이캐스팅이 뭐냐. 마치 레이저를 쏴서 오브젝트와의 충돌을 판단하는 것.
RaycastHit2D hit = Physics2D.Raycast(transform.position, direction, 11f, (1 << LayerMask.NameToLayer("Level")) | layerMaskTarget);
요런 느낌으로