📖 학습 목표

  • 유니티의 프리팹(Prefab)의 개념을 익힙니다.
  • 프리팹을 직접 생성하고 인스턴스화(Instantiate) 합니다.

 

📒 과정

0. Scene 열기

  • 프로젝트 폴더 내 Scenes폴더 안에 있는 "3. Prefab"을 엽니다.

 

 

1. 프리팹(Prefab)

  • Prefab은 "prefabrication, 조립식"의 약어로 공장이나 기타 제조 지역의 구조 부품들을 조합하고 건설 지역에 운송하여 구조물을 위치시키는 것을 의미합니다.
  • 유니티에서 프리팹(Prefab)은 게임 오브젝트(GameObject)의 재사용성을 높이기 위한 개념입니다. 
  • 프리팹은 게임에서 사용되는 오브젝트, 캐릭터, 아이템, 장애물 등의 모든 종류의 게임 요소를 나타낼 수 있습니다.
  • 프리팹을 씬에 추가하면 해당 프리팹의 복사본을 만들 수 있습니다.
  • 동일한 오브젝트를 반복해서 사용해야 하는 경우에 특히 효과적입니다.

 

에셋 스토어에서 받은 에셋들은 대부분 Prefab으로 정리해 둔 파일들이 있음

 

  • 하이어라키에서 프리팹 오브젝트는 일반 오브젝트와 달리 아이콘 및 글씨의 색상이 하늘색으로 표시됩니다.

 

  • 프리팹을 클릭하면 인스펙터(Inspector)에서 Transform 컴포넌트 위에 프리팹을 위한 추가 항목이 있습니다.

 

 

 

· Prefab 속성

  • 현재 이 오브젝트가 어떤 프리팹을 사용하고있는지 설정합니다.
  • 대부분 이 속성은 Project 폴더 내에서 불러올 때 결정되어 그 후로 수정하지 않습니다.

 

 

 

· Overrides속성

  • 프리팹의 가장 핵심이 될 기능으로 이 프리팹의 변경사항을 동일한 다른 프리팹에 적용합니다.
  • Revert All은 변경사항을 모두 제거하고 최근 저장된 형태로 되돌립니다.
  • Apply All은 현재 이 프리팹에 적용된 모든 변경사항을 저장하고 동일한 프리팹에 적용합니다.

 

 

 

· Select

  • 이 프리팹이 실제 파일로 저장된 Project폴더 내 위치를 알려주며 그 파일을 선택하게합니다.

 

 

 

· Open

  • 선택한 프리팹 오브젝트를 Scene에서 포커싱하여 보여줍니다.
  • 우측 상단의 "Auto Save"가 켜져있기에 일반적으로 이 상태에서 오브젝트를 수정한 후 Open 모드를 벗어나면 변경사항이 저장되어 Overrides Apply All이 수행되어 동일한 모든 프리팹에 적용됩니다.

 

 

 

2. 프리팹 불러오기

  • 프리팹을 Scene에 추가하려면 간단하게 Project 폴더에서 프리팹 오브젝트를 Scene에 드래그 앤 드랍하면 됩니다.
  • 또는 하이어라키에 드래그 앤 드랍을 해도 됩니다.
  • 이 과정(복사본을 씬에 불러오기)을 인스턴스화(Instantiate)라고 합니다.

 

 

3. 프리팹의 특징

  • 프리팹은 오브젝트의 속성을 파일로 저장하여 언제든지 그 파일을 다른곳에 재사용할 수 있습니다.
  • 프리팹에 변경사항이 있다면 변경사항을 저장하고 동일한 프리팹에게 모두 적용시킬 수 있습니다.

 

 

 

· 프라팹 생성

  • 프리팹을 생성하기 위해서는 프리팹을 불러오는 과정을 반대로 수행합니다.
  • 하이어라키에서 프리팹이 아닌 오브젝트를 프로젝트 폴더 안으로 드래그 앤 드랍합니다.

  • 프리팹으로 생성되어 하이어라키에서 아이콘과 오브젝트 이름의 색상이 하늘색으로 변경된것을 볼 수 있습니다.

 

 

 

· 프리팹의 변경사항을 저장

  • 프리팹의 변경사항을 저장하기위해서는 인스펙터에서 Overrides를 클릭한 후 Apply All을 누릅니다.

  • 다른 동일한 프리팹 또한 변경사항이 저장된것을 볼 수 있습니다.
  • 프리팹의 변경사항을 저장하지 않으면 프리팹이지만, 별도의 고유한 오브젝트와 같은 개념입니다.
  • 꼭 변경사항을 저장할 필요는 없습니다.

 

 

 

📋 학습 완료

  • 유니티의 프리팹(Prefab)의 개념을 익혔습니다.
  • 프리팹을 직접 생성하고 인스턴스화(Instantiate) 하였습니다.
  • 프리팹의 변경사항을 저장하여 동일한 프리팹에 변경사항을 적용하였습니다.
bonnate