Public

[Unity] 프리팹 안의 프리팹 : Nested Prefab (중첩 프리팹)

김치킨. 2025. 12. 18. 21:44

안녕하세요! 유니티로 게임을 개발하다 보면 '프리팹(Prefab)'은 떼려야 뗄 수 없는 존재입니다. 하지만 혹시, 프리팹 안에 다른 프리팹을 넣었다가 수정 사항이 반영되지 않아 고생했던 기억, 없으신가요?

과거(Unity 2018.3 이전)에는 프리팹 안에 다른 프리팹을 넣으면 그 연결 고리가 끊어져 버리는 악몽 같은 문제가 있었습니다. 하지만 Nested Prefab(중첩 프리팹) 시스템이 도입되면서 개발 환경은 완전히 달라졌습니다.

오늘은 유니티 개발의 생산성을 200% 올려주는 Nested Prefab에 대해 아주 쉽게 정리해 드립니다.


1. Nested Prefab이란 무엇인가요?

간단히 말해 "프리팹 안에 들어있는 또 다른 프리팹"을 의미합니다.

과거에는 '집(House)' 프리팹 안에 '의자(Chair)' 프리팹을 넣는 순간, '의자'는 더 이상 독립적인 프리팹이 아니게 되었습니다. 단순히 복사된 데이터 덩어리가 되어버렸죠. 그래서 원본 '의자' 프리팹을 수정해도 '집' 안에 있는 의자는 바뀌지 않았습니다.

하지만 Nested Prefab 시스템 하에서는:

  • '집' 프리팹 안에 '의자' 프리팹을 넣어도 '의자'의 원본 링크가 유지됩니다.
  • 원본 '의자' 디자인을 바꾸면, '집' 안에 있는 의자도 자동으로 바뀝니다.

2. 왜 써야 할까요? (강력한 장점)

Nested Prefab을 잘 활용하면 게임 구조가 레고 블록처럼 모듈화(Modular)됩니다.

✅ 모듈형 작업 가능

거대한 맵이나 UI를 하나의 통짜 프리팹으로 만들지 않아도 됩니다.

  • UI: 버튼 프리팹 -> 팝업창 프리팹 -> HUD 프리팹
  • 환경: 나무 프리팹 -> 숲 프리팹 -> 전체 맵 씬

각각의 작은 부품(프리팹)만 수정하면, 이를 포함하는 모든 상위 프리팹에 자동으로 변경 사항이 전파됩니다.

✅ 협업 효율 증대

이 기능은 팀 프로젝트에서 빛을 발합니다.

  • 아티스트 A: '무기' 모델링과 이펙트를 수정합니다.
  • 기획자 B: 해당 무기를 들고 있는 '캐릭터'의 스탯을 조정합니다.

두 프리팹이 분리되어 있으면서도 중첩되어 작동하기 때문에, 서로의 작업물을 덮어쓰지 않고 병렬로 작업할 수 있습니다.


3. 핵심 기능: Overrides (오버라이드)

Nested Prefab의 꽃은 바로 Overrides 기능입니다.
상위 프리팹(Parent) 안에서 하위 프리팹(Child)의 일부 속성만 '살짝' 바꾸고 싶을 때 사용합니다.

예시:
기본 '병사' 프리팹이 있습니다. 이 병사를 '부대' 프리팹 안에 10명 배치했습니다. 대장 병사 한 명만 빨간색 투구를 씌우고 싶다면?

  1. '부대' 프리팹 편집 모드로 들어갑니다.
  2. 대장 병사의 투구 색을 빨간색으로 변경합니다.
  3. 이 변경 사항은 이 특정 병사에게만 적용(Override)되며, 원본 '병사' 프리팹은 그대로 유지됩니다.

인스펙터 창에서 변수 이름이 굵은 글씨(Bold)로 표시되거나, 왼쪽에 파란색 선이 생긴다면 그 부분은 오버라이드 되었다는 뜻입니다.

  • Revert: 오버라이드한 내용을 취소하고 원본 프리팹 값으로 되돌립니다.
  • Apply: 변경한 내용을 원본 프리팹에 덮어씌웁니다. (주의: 이 경우 모든 병사의 투구가 빨간색이 됩니다!)

4. 실무 활용 팁 & 주의사항 💡

1) Prefab Mode(프리팹 모드)를 적극 활용하세요

하이어라키(Hierarchy)에서 프리팹 옆의 작은 화살표(>)를 누르면 해당 프리팹만 독립적으로 편집할 수 있는 Prefab Mode로 진입합니다. 씬이 복잡할 때 이 모드에서 작업하면 실수로 다른 오브젝트를 건드리는 일을 방지할 수 있습니다.

2) 너무 깊은 중첩(Deep Nesting)은 피하세요

나사 < 바퀴 < 자동차 < 차고 < 마을 < 도시 처럼 너무 깊게 중첩하면, 나중에 수정 사항이 어디서 오버라이드 되었는지 추적하기 힘들어질 수 있습니다. 3~4단계 정도의 깊이를 유지하는 것이 정신건강에 좋습니다.

3) Prefab Variant(프리팹 변형)와 함께 쓰세요

Nested Prefab과 짝꿍인 기능이 Prefab Variant입니다.

  • Nested: 포함 관계 (A 안에 B가 있다)
  • Variant: 상속 관계 (A를 기반으로 만든 A')

기본 '몬스터' 프리팹을 만들고, 이를 상속받아 '불 몬스터', '얼음 몬스터' Variant를 만드세요. 그리고 이들을 '던전' 프리팹 안에 Nested 시키면 완벽한 구조가 됩니다.


마치며

Nested Prefab은 유니티가 제공하는 가장 강력한 워크플로우 개선 기능 중 하나입니다. 이 기능을 제대로 이해하고 구조를 짠다면, 나중에 게임의 규모가 커져도 유지 보수가 훨씬 쉬워질 것입니다.

오늘 당장 여러분의 프로젝트에서 반복되는 요소들을 쪼개고, 중첩시켜 보세요! 🛠️


태그: #Unity #유니티 #게임개발 #NestedPrefab #프리팹 #개발꿀팁