💬 처음 Unity를 시작했을 때 하면서 Tag와 Layer, Sorting Layer이라는게 어떤 부분에서 차이가 있는지, 각각이 하는 역할들은 무엇인지 궁금해 했었던 기억이 있어 이 글을 통해 Tag, Layer, Sorting Layer에 대해 설명하려 합니다!
Unity의 Inspector창을 보면 Tag와 Layer이라는 창을 볼 수 있다. Tag와 Layer은 언제 쓰는거고, 무슨 차이가 있는걸까?
Game Object에 사용자가 정의한 문자열을 할당하여 해당 Game Object의 종류나 역할을 구분하는 데에 사용된다. 해당 Game Object가 어떤 카테고리에 속하는지 Tag로 구분할 수 있다. Game Object에 사용하면 게임을 실행하는 동안 Game Object를 참조하거나 다른 Game Object와 비교하기 쉽다.
사용 예 - 적 캐릭터, 아이템, 플레이어, 지형 등을 식별할 때 / script에서 해당 Tag를 사용하여 특정 타입의 오브젝트를 찾거나 처리
Layer은 랜더링 또는 Game Object의 충돌을 확인할 때 서로 인식하고 상호작용 할 수 있는 용도로 사용한다. 즉, 물리적인 처리에 영향을 미치는 데에 사용된다라고 생각하면 쉽다. Layer를 정한 후에는 두 게임 오브젝트가 충돌 했을 때 해야 하는 일을 script로 작성할 수 있다.
사용 예 - Player와 Enemy 간의 충돌을 감지하고 싶을 때, Player Object와 Enemy Object에 서로 다른 Layer를 할당하여 충돌 감지를 설정 / 특정 카메라에만 특정 레이어의 Object를 렌더링하도록 설정 가능
Tag와 Layer의 차이점
Layer는 그룹을 관리하고, Tag는 단일 게임 오브젝트를 관리한다.
➔ Tag가 Layer보다 더 좁은 범위에서 오브젝트를 확인한다.
Tag - Inspector창에서 직접 지정하거나 script에서 동적으로 변경 가능
Layer - 주로 프로젝트 설정에서 Layer을 추가, Inspector창에서 할당
Sorting Layer이라는 것도 있는데, Sorting Layer이란 뭘까?
Sorting Layer에 대해서도 알아보자.
정렬 레이어라고도 한다. 주로 2D 게임에서 사용되는 기능인데, 렌더링 되는 객체들의 순서를 조절하는 데 사용된다. 화면 안에 존재하는 2D Sprite 이미지를 그릴 순서를 알려준다고 생각하면 쉽다. 이는 Game Object 내에서 렌더링 순서를 정의하고 sprite를 정렬할 때 유용하다.
+추가설명)
Order in Layer : Sorting Layer 내에서 개체의 정렬 순서를 결정하는 데 사용되는 값
값이 낮을수록 뒤에 그려지고, 값이 높을수록 앞에 그려진다.
Layer과 Sorting Layer의 차이
Layer: 3D 공간에서 오브젝트들을 서로 구별하기 위해 Layer를 사용. 물리적 충돌이나 카메라 시야 등의 다양한 측면에서 Object를 분류하는 데 사용됨
Sorting Layer: 주로 2D 게임에서 사용되며, 시각적인 순서와 겹침을 다루는 데에 중점을 둠
💬 Tag, Layer, Sorting Layer에 대해 최대한 쉽게 설명을 하려고 노력했는데, 잘 전달이 되었는지 모르겠네요. 글을 읽다가 궁금한 점이 있으시면 댓글에 남겨주세요. 제가 아는 선에서 답변 달아드리도록 하겠습니다 :)