코딩의 신 65

김동관·2026년 1월 5일

오늘의 트러블 슈팅

특정 Layer만 캐릭터가 투명해지는 문제

문제발생

Unity URP 환경에서 인벤토리 캐릭터 미리보기를 구현하기 위해
다음과 같은 구조를 사용했다.

PreviewCamera + RenderTexture

UI RawImage에 RenderTexture 출력

캐릭터 전용 Layer(CharacterPreview) 사용

lilToon Shader 사용

하지만 특정 문제가 발생했다.

문제 증상

캐릭터 Layer를 CharacterPreview로 변경하는 순간 캐릭터가 투명해짐

Camera Culling Mask를 Everything으로 해도 동일

Light Culling Mask, Additional Light, Depth Texture 등을 바꿔도 해결 안 됨

Player, Water, Interact, Test 같은 기존 레이어에서는 정상 표시

다른 오브젝트도 CharacterPreview 레이어로 바꾸면 전부 투명

-> 처음엔 Layer 문제 / Shader 문제처럼 보였음

잘못된 추측들 (삽질 포인트)

RenderTexture 설정 문제

Camera Culling Mask 문제

Light Culling Mask 문제

lilToon Shader의 Rendering Mode 문제

URP Renderer Feature(Render Objects) 문제

전부 원인이 아니었다.

진짜 원인: PreviewCamera가 “다른 Renderer”를 사용하고 있었던 것

URP에서는 하나의 프로젝트에 여러 Renderer를 가질 수 있다.

URP Asset
 ├ Renderer 0 : Ultra_PipelineAsset_Forward (월드용)
 └ Renderer 1 : StencilRenderer (특수 효과용)

문제 상황

메인 카메라 → Renderer 0 사용

PreviewCamera → Renderer = Default (Renderer 1)

Renderer 1은:

Stencil / 특수 효과 전용

lilToon + 특정 Layer(CharacterPreview)를 제대로 처리하지 못함

결과적으로 렌더 단계에서 캐릭터가 날아가면서 투명처럼 보임

그래서:

레이어를 바꾸는 순간만 문제 발생

카메라 문제처럼 보이지 않았음

Everything이어도 소용없었음

해결 방법: PreviewCamera의 Renderer를 명시적으로 지정

PreviewCamera Inspector에서:

Rendering
 ├ Render Type : Base
 └ Renderer    : 0 : Ultra_PipelineAsset_Forwar

Default 사용 금지
메인 카메라와 동일한 Renderer를 직접 지정

이렇게 하자:

CharacterPreview 레이어에서도 캐릭터 정상 출력

lilToon Shader 정상 작동

RenderTexture 정상 출력

왜 레이어 문제처럼 보였나?

Renderer 단계는 Layer 필터보다 먼저 적용

Renderer가 해당 Shader / Layer 조합을 처리하지 못하면
→ Camera와 Light 설정과 상관없이 렌더되지 않음

즉:

Layer를 바꿨을 때 투명해진 게 아니라
“그 Layer가 Renderer 1에서 처리되지 않았던 것”

최종구조

Main Camera

  • Renderer : 0
  • Culling Mask : Everything x CharacterPreview

PreviewCamera

  • Renderer : 0
  • Culling Mask : CharacterPreview
  • Output : RenderTexture

교훈

URP에서는 Camera의 Renderer 설정이 매우 중요

Default Renderer는 프로젝트마다 의미가 다를 수 있음

RenderTexture + PreviewCamera 사용 시
반드시 Renderer를 명시적으로 지정해야 함

Layer 문제처럼 보이는 버그의 원인이
Renderer 선택 문제일 수 있다

요약 한 줄

Unity URP에서 특정 Layer만 투명해진다면
Camera가 어떤 Renderer를 쓰고 있는지 반드시 확인하자

profile
아이디어 뱅크

0개의 댓글