[Unity] URP에서 UI만 별도 렌더러 분리하기
![[Unity] URP에서 UI만 별도 렌더러 분리하기](/_next/image?url=https%3A%2F%2Fdata.develog.develrocket.com%2Fupload%2Fdevelog%2Fuser_1777093328305%2F1786452639307-ny5ycy%2F_____2026-08-11_213615.png&w=3840&q=75)
댓글 0
댓글을 작성하려면 로그인이 필요합니다.
아직 댓글이 없습니다. 첫 번째 댓글을 작성해보세요.
현재 진행중인 프로젝트에서 화면 전체에 픽셀화(Pixelation) 후처리를 적용하고 있다. 그냥 캔버스에서는 픽셀화가 적용되지 않지만, 현재 보상 카드에 이펙트를 넣는 과정에서 캔버스 Render Mode를 Screen Space -Camera로 적용하니 보상 카드에 있는 글씨나 이미지가 픽셀화됐다. 이걸 해결하기 위해 시도한 방법이지만 결국은 실패했다...
아직 해결 못한 문제지만 실패도 경험이기 때문에 블로그 글 주제로 잡았다.
URP는 하나의 렌더 파이프라인 에셋(RP Asset)에 여러 개의 렌더러를 리스트로 등록할 수 있고, 카메라마다 어떤 렌더러를 쓸지 지정할 수 있다. 이 구조를 이용한다.
게임 화면은 기존 렌더러(픽셀화 유지)로, UI는 새 렌더러(픽셀화 없음)로 나뉘게 된다.
기존 PC 렌더러 에셋을 복제한 뒤 이름을 UI_Renderer로 바꾼다. 복제본의 Renderer Features 목록에서 픽셀화 피처만 제거한다.
이때 Night Wipe, Interaction Outline, SSAO 같은 다른 피처는 일단 그대로 둔다. 한 번에 하나씩만 바꿔야 어떤 변경이 결과에 영향을 줬는지 명확해진다. UI에 불필요한 피처가 있더라도 원인 판정이 끝난 뒤에 정리하는 편이 낫다.
RP 에셋의 Renderer List에 방금 만든 UI_Renderer를 슬롯 추가로 등록한다. 이때 Default Renderer는 0번(기존 렌더러)으로 유지해야 한다. 기본값을 바꾸면 게임 화면 전체가 픽셀화를 잃는다. 리스트는 0번이 기존 렌더러, 1번이 UI 렌더러가 되도록 구성한다.
카메라의 렌더러 선택은 렌더러 이름이 아니라 리스트 인덱스 숫자로 저장된다. PC RP 에셋만 렌더러를 2개로 늘리면 모바일 RP 에셋에서는 인덱스 1이 존재하지 않아 범위를 벗어난다.
따라서 모바일 렌더러도 같은 방식으로 복제해 인덱스 1 자리에 등록한다. 모바일 렌더러에는 애초에 픽셀화 피처가 없으므로 뺄 것은 없고, 인덱스 번호를 맞추는 것 자체가 목적이다. 두 플랫폼의 렌더러 리스트 구조가 동일해야 카메라 설정이 양쪽에서 깨지지 않는다.

새 카메라 오브젝트를 만들고 이름을 UICamera로 지정한다. 씬에 카메라가 둘이 되므로 Audio Listener 컴포넌트는 삭제한다. 그대로 두면 리스너 중복 경고가 계속 뜬다.
카메라 설정은 다음과 같다.
Render Type을 Overlay로

UI_Renderer로
메인 카메라의 Rendering → Stack 섹션에서 UICamera를 추가한다. 스택 목록에는 Overlay 타입 카메라만 나타난다. 목록에 UI 카메라가 보이지 않으면 Render Type이 Overlay로 설정되지 않은 것이다.

UI 캔버스(예: RewardCanvas)의 Canvas 컴포넌트에서 Render Mode를 Screen Space - Camera로 바꾸고, Render Camera에 UICamera를 지정한다. Sorting Order 같은 기존 레이어 순서 값은 건드리지 않는다.

원래는 글씨, 아이콘, 별이 다 깨지는 상태였지만 그래도 렌더 모드를 다르게 해서 깨져 보이진 않는다. 하지만 Screen Space 오버레이랑 카메라의 렌더링 순서를 같이 조절할 수 없어서 보상 패널이 가려지게 되는 문제가 생겼다. 결국 폐기하고 다른 방법을 추천 받았는데, 아직 적용은 안해봤지만 이번주 내로 적용해서 다시 블로그 글 주제로 적어볼 예정이다.
SerializeReference
![[Unity] 튜토리얼 설계](https://data.develog.develrocket.com/upload/develog/user_1777093328305/1787322579554-zopplu/_____2026-08-21_232731.png)
튜토리얼 설계
![[Unity] Event Trigger Component](https://data.develog.develrocket.com/upload/develog/user_1777093328305/1786976296699-a3tu75/_____2026-08-17_231353.png)
Unity Event Trigger 컴포넌트
![[Unity] 튜토리얼 설계](https://data.develog.develrocket.com/upload/develog/user_1777093328305/1787322579554-zopplu/_____2026-08-21_232731.png)
![[Unity] Event Trigger Component](https://data.develog.develrocket.com/upload/develog/user_1777093328305/1786976296699-a3tu75/_____2026-08-17_231353.png)