티스토리 뷰

유니티로 작업을 하다 보면 Sorting Order를 만지는 일이 잦다.

캔버스에도 존재하고, 스프라이트 렌더러에도 존재하고, 타일 맵 렌더러에도 존재하는 개념이니까.

오히려 이걸 어떻게 구성하느냐가 시각적인 요소에서는 꽤나 중요한 내용이기도 하다.

사실, 간단하고 뻔한 내용이긴 한데, 오늘 작업하면서 소소하게 알게 된 부분이 있어서 정리해볼 예정이다.


Sorting Order?

문자 그대로, '정렬에서의 순번'이다. 표시 우선도라고 보면 좋다.

이 숫자가 높을 수록 상위에 표시되고, 이 숫자가 낮을 수록 하위에 표시된다. 일종의 높이값이라고 보면 옳다.

이 값은 -32768~32767의 정수 값으로 구성되며, 같은 값일 경우에는 '늦게 생성된' 쪽이 상위로 자리한다.

다만, 이 '늦게 생성된'이 매우 애매한 개념이라서 개발자가 조절할 수 있는 요소가 아니기 때문에, 겹치는 부위가 있다면 반드시 Sorting Order를 설정하도록 하자.


SortingOrder는 전체 공용.

공간이 같다면 다른 요소들 끼리도 SortingOrder에 의한 표시 순서 정렬은 동일하게 적용된다.

[당연하지만, 카메라나 화면에 직접 띄워버리는 형식인 ScreenSpace는 공간 자체가 달라서 예외다.]

 

어찌 보면 당연한 것이긴 한데, 굳이 시도해 보지 않는다면 잘 모를 수도 있는 부분.

casvas도 WorldSpace라면 표시 순서를 따라서 표시된다.

다르게 말하면, WorldSpace Canvas를 이용해서 바닥에 툴팁을 새겨놓거나 하는 것도 가능하다는 것.

이외에도 당연하지만 Sprite와 Tilemap의 혼용 등도 가능하다.


시점에 따른 주의점

spriteRenderer는 Sorting Order를 제외하면 표시 순서에 관여하는 요소가 거의 전무하다.

즉, 3D 화면에 spriteRenderer를 배치하거나 2D 환경이라면 좌표를 아무리 조정해도 Sorting Order가 변하지 않는다면 표시 순서가 변하지 않는다.

즉, spriteRenderer로 구성된 '움직이는 개체'에는 Sorting Order를 실시간으로 변화시킬 수 있는 기능이 있어야지 기둥 뒤 공간 같은 부분에 자연스럽게 대처가 가능하다.

탑뷰 같은 경우에는 층 구조가 아닌 이상 겹칠 일이 없어서 신경쓸 필요 없지만, 쿼터뷰나 벨트 스크롤, 아이소메트릭 등 '겹칠 수 있는' 시점 구성이라면 반드시 유의해야 할 것이다.


당연하지만, 오늘 정리한 요소는 기초적인 정보라고 해도 될 정도로 간단한 정보다.

그래도 WorldSpace Canvas와 SpriteRenderer 사이의 표시 우선도 같은 건 알아두면 유용하게 쓰일 부분은 많은 편이고, 의외로 위치에 따른 Sorting Order 변화 로직의 부재로 발생하는 문제도 잊을 만 하면 발생하는 터라, 이래저래 알아두면 편할 곳은 분명히 존재하는 편이다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함