전문분야 (3D, 그래픽, 프로그래밍, AI, 디자인)/Unity

[Unity]유니티 프리팹(Prefab) 이해하기

아진디자인랩 2025. 9. 23. 20:47
반응형

 

유니티(Unity)에서 게임을 만들다 보면 자주 듣게 되는 용어가 바로 프리팹(Prefab) 입니다.
프리팹은 유니티 개발자라면 꼭 이해해야 하는 핵심 개념 중 하나입니다.
이번 글에서는 프리팹이 무엇인지, 어떤 종류가 있는지, 그리고 각각을 언제 사용하면 좋은지를 알기 쉽게 정리해 보겠습니다.
 

프리팹(Prefab)이란?

씬 속 게임오브젝트(컴포넌트, 자식 포함)의 구성을 “자산(Asset)”으로 저장해 두고, 그 자산을 필요할 때마다 인스턴스로 복제해서 사용하는 템플릿입니다.
프리팹 에셋을 수정하면 그 프리팹에서 만들어진 인스턴스에 공통적으로 반영되고(오버라이드가 없는 부분), 인스턴스 쪽에서 개별 설정을 “오버라이드”로 유지할 수도 있습니다.
 
Prefabrication 에서 파생된 용어로 공장 등 다른 장소에서 건축 부재나 모듈을 미리 만들어 현장으로 운송하여 조립하는 건설 기법 이란 뜻입니다. 공장이 유니티면 프리팹은 공장에서 많이 쓰니는 철근이나 시멘트 같다고 표현하면 될 것 같습니다.
 

프리팹을 왜 사용해야 하나?

간단하게 말하면 수많은 오브젝트를 한 번에 수정하기 위한 자산관리라고 볼 수 있습니다.
예를 들어 어느 한 디펜스 게임을 할 때 무수히 쳐들어오는 적들을 막아야 하죠. 그런데 게임 개발 중 적들의 외형을 수정해야 하는데 그 많은 적들의 외형을 모두 수정하는게 가능할까요? 불가능에 가깝습니다. 이걸 가능하게 하는게 바로 프리팹 입니다.
최초에 적으로 사용할 3D 모델링 파일을 프로젝트로 불러온 후, 그것을 유니티 씬에 배치하고, 그 오브젝트를 프리팹으로 만듭니다. 그리고 그 프리팹을 씬에 배치해서 사용하는거죠.
 
나중에 적으로 사용하는 오브젝트를 수정해야 한다면 마스터 프리팹을 수정하거나 또는 복사된 인스턴스 프리팹을 수정하고 그것을 통해 마스터 프리팹을 변경, 그리고 다른 인스턴스 프리팹들을 모두 수정하는 방법이 있습니다.
 
각각의 인스턴스 프리팹은 고유한 특성도 갖게 할 수 있습니다. 마스터 프리팹을 똑같이 따라가지 않게도 할 수 있습니다.
 

프리팹의 종류와 특징

단순 오브젝트
또는 Unpack 상태
면 색이 없는 큐브 말 그대로 유니티 내 단순 오브젝트. 프리팹이 아님.
일반 프리팹
파란 큐브 가장 기본적인 프리팹. 원본과 연결된 상태
프리팹 Variant
파란 큐브 사선 표시 부모 프리팹을 상속하면서 일부만 다르게 유지하는 “파생 프리팹”
중첩 프리팹(Nested)
파란 큐브 안에 + 표시 프리팹 안에 또 다른 프리팹이 들어간 구조
모델 프리팹(Model)
윗면이 파인 듯한
ㄷ형태 큐브
외부 3D 툴(3ds Max, Blender 등)에서 가져온 FBX가 읽기 전용 프리팹으로 변환됨

 

프리팹 생성 방법

 
씬에서 원하는 오브젝트를 구성하고 하이어라키 창에서 오브젝트를 Project 창으로 드래그합니다.
prefab 파일이 만들어지고, 씬에 있던 오브젝트는 곧바로 프리팹 인스턴스로 바뀝니다.
이제 이 프리팹을 씬에 드래그하면 원하는 만큼 복제해서 쓸 수 있어요.
 
 

프리팹 Variant 생성 방법

예를 들어, 같은 몬스터 프리팹이 있는데 체력만 다른 버전, 색깔만 다른 버전 등을 만들고 싶을 때 Variant를 쓰면 좋아요.

  • Project 창에서 프리팹을 우클릭 → Create > Prefab Variant 선택
  • 또는 인스턴스를 Project로 드래그하면 Variant로 만들지 묻는 창이 떠요.

 
Variant는 부모 프리팹을 계속 상속받으면서 일부 속성만 다르게 유지할 수 있어서 아주 효율적입니다.
 

Unpack(해제) 기능

어떤 인스턴스를 더 이상 프리팹으로 관리하고 싶지 않을 때는 Unpack을 씁니다.

  • Unpack → 루트만 프리팹 연결 해제
  • Unpack Completely → 내부 중첩 프리팹까지 모두 일반 오브젝트로 해제

하지만 한 번 풀면 원본과의 연결이 끊기니, 정말 독립적으로 쓰고 싶을 때만 사용하는 게 좋아요.

(좌)Unpack / (우)Unpack Completely우

위 두 개 이미지를 비교하면 어떤 차이인지 알 수 있습니다. 좌측 이미지가 Unpack, 우측 이미지가 Unpack Completely를 실행했을 때입니다.

 

Nested Prefab(중첩 프리팹)

 프리팹 안에 또 다른 프리팹을 포함시키면 중첩 프리팹 (Nested Prefab) 이 됩니다. 하이어라키 창에서 프리팹 내부에 또 다른 프리팹이 포함되어 있다는 의미로 보여주기 위해 아이콘에 + 가 붙어서 보여집니다.
 
예를 들어 자동차 모델의 프리팹을 만들고 그 안에 바퀴를 별도 프리팹으로 넣어서 중첩 프리팹으로 만들었다면 나중에 바퀴만 따로 일괄 수정을 할 수 있다는 장점이 있습니다. 
 

실무에서 활용

 

  • FBX는 Variant로 관리하기
  • 3ds Max, Blender, Rhino 같은 툴에서 모델을 가져오면 자동으로 “모델 프리팹”이 생깁니다.
  • 이건 직접 편집이 제한적이므로, Variant를 만들어 거기에 컴포넌트나 머티리얼을 붙이는 게 정석이에요.
  • 중첩 프리팹 활용하기
  • 예를 들어 “차량 프리팹” 안에 “바퀴 프리팹”을 넣어두면, 바퀴를 한 번 수정해도 모든 차량에 반영할 수 있습니다.
  • Unpack은 최소화
  • 프리팹 업데이트 혜택을 잃어버리니 꼭 필요한 경우에만 쓰세요.

 


 
프리팹은 "템플릿으로 저장 → 반복 재사용"이라는 개념을 이해하면 어렵지 않습니다.
일반, Variant, 중첩, 모델 프리팹 등 상황에 맞는 방식을 잘 활용하면 프로젝트 관리가 훨씬 편해져요.

반응형