

게임에 필요한 작물들을 추가 하던 중 한가지 고민 점이 생겼었다.
기존에 테스트로 작업하던 작물들은 1칸 짜리 작물이라서 타일 하나만 차지했기에, 겹치는 것에 대해 걱정할 필요가 없었다.
그러나 추가된 작물들은 2칸짜리 작물들도 있어, 표시될 때 의도하지 않은 방식으로 보이는 것이 걱정됐다.

그래서 처음 생각한 것은, 오브젝트의 Y축에 따라 SpriteRenderer의 Order in layer을 변경하는 스크립트를 작성하는 것이었다.
그러나 URP의 Renderer 2D Data를 이용한다면 굳이 그럴 필요가 없다는 사실을 알게 되었다.

Renderer 2D Data는 URP 프로젝트에서 2D Renderer가 참조하는 데이터 에셋으로, 2D환경에서의 렌더링 동작을 정의한다.
Renderer 2D Data에는 다양한 설정들이 있지만, 그 중에서 Transparency Sort Mode에 내가 필요로 하던 기능이 있었다.

Transparency Sort Mode에는 네가지 옵션이 있다.
Default
Default는 기본 정렬 모드로, 카메라의 투영방식에 렌더모드를 맞춘다.
만약 카메라와의 거리가 같은 경우, 경우에 따라 겹치는 순서가 바뀔 수도 있기에, 내가 원하는 방식은 아니었다.
Perspective & Orthographic
Perspective는 카메라 위치에서 스트라이트 중심까지의 거리를 기준으로 스프라이트를 정렬한다.
Orthographic은 객체의 Position의 Z값에 따라 정렬한다.
설명에 따르면 Perspective이 좀 더 원근감이 있는 방식이라고 하지만, 직접 설정해본 결과 큰 차이는 느끼지 못했다.
Z축을 따로 건들 일이 없기 때문에 위 옵션들도 내가 구현하고자 하는 것과 거리가 멀었다.
Custom Axis
Custom Axis는 Transparency Sort Axis에서 설정한 특정 축을 기준으로 정렬한다.

Transparency Sort Axis는 -1 에서 1 사이의 값이 들어가며, 위 이미지의 예시처럼 (0, 1, 0)으로 해 놓을 경우,
Position의 Y값이 높을 수록 뒤로 배치되며, 낮을 수록 앞으로 배치된다.


Transparency Sort Mode을 이용해 내가 스크립트를 작성하면서까지 구현하고자 하던 기능을 쉽게 구현할 수 있었다.
참고한 링크
'내일배움캠프 TIL' 카테고리의 다른 글
| 내일배움캠프 74일차 TIL "Sprite atlas 관련 이슈 해결" (0) | 2025.01.02 |
|---|---|
| 내일배움캠프 73일차 TIL "취침 및 강제 취침 관련 아이디어" (0) | 2024.12.31 |
| 내일배움캠프 71일차 TIL "시세 변동 시스템" (0) | 2024.12.27 |
| 내일배움캠프 70일차 TIL "Popup UI" (0) | 2024.12.26 |
| 내일배움캠프 69일차 TIL "Mask, Rect Mask 2D" (0) | 2024.12.24 |