Unity의 프리팹 시스템에서 Prefab Assets 는 템플릿 역할을 합니다. 에디터에서 생성한 프리팹 에셋은 Project 창에서 에셋으로 저장됩니다. Prefab Assets 에서 프리팹 인스턴스 를 원하는 만큼 생성할 수 있습니다. 프리팹 인스턴스는 에디터에서 생성하여 씬의 일부로 저장하거나, 런타임 시점에 인스턴스화할 수 있습니다.
프리팹 에셋을 생성하려면 Hierarchy 창의 게임 오브젝트를 Project 창으로 드래그하십시오. 게임 오브젝트 및 그와 관련된 모든 컴포넌트와 자식 게임 오브젝트가 Project 창에서 새로운 에셋이 됩니다. Project 창의 프리팹 에셋은 Project 창의 설정 방식에 따라 게임 오브젝트의 썸네일 뷰 또는 파란색 큐브 프리팹 아이콘으로 표시됩니다.
또한 이 프로세스를 통해 프리팹 에셋을 생성하면 원본 게임 오브젝트가 프리팹 인스턴스로 변합니다. 즉, 새롭게 생성된 프리팹 에셋의 인스턴스가 됩니다. 프리팹 인스턴스는 계층에서 파란색 텍스트로 표시되고, 프리팹의 루트 게임 오브젝트는 빨간색, 녹색 및 파란색 게임 오브젝트 아이콘이 아니라 파란색 큐브 프리팹 아이콘으로 표시됩니다.
한 번에 여러 프리팹 에셋을 생성하려면 계층 창에서 프로젝트 창으로 게임 오브젝트를 여러 개 드래그합니다. 이 기능은 위의 문단과 동일합니다.
아직 프리팹이 아닌 게임 오브젝트를 프로젝트 창으로 여러 개 드래그하면 Unity는 추가 작업 없이 각각에 대해 새로운 원본 프리팹 에셋을 생성합니다.
프로젝트 창으로 드래그하는 게임 오브젝트가 기존 프리팹 배리언트 또는 모델 배리언트인 경우 Unity는 게임 오브젝트에서 새로운 프리팹 에셋을 생성할지 아니면 새로운 배리언트를 생성할지 확인하는 다이얼로그 상자를 표시합니다. 이 다이얼로그 상자의 콘텐츠는 프로젝트 창으로 드래그한 게임 오브젝트의 수와 타입에 따라 달라집니다.
Project 뷰의 프리팹 에셋을 Hierarchy 또는 Scene 뷰로 드래그하여 에디터에서 프리팹 에셋의 인스턴스를 생성할 수 있습니다.
또한 스크립팅을 사용하여 런타임 시점에 프리팹의 인스턴스를 만들 수도 있습니다. 자세한 내용은 프리팹 인스턴스화를 참조하십시오.
계층 창에서 새 게임 오브젝트를 프로젝트 창의 기존 프리팹 에셋 위로 드래그하여 프리팹을 교체할 수 있습니다.
기존 프리팹을 교체할 경우 Unity는 프리팹 자체와 해당 프리팹의 개별 파트(예: 자식 게임 오브젝트, 컴포넌트)에 대한 레퍼런스를 유지하려고 시도합니다. 이를 위해 Unity는 새 프리팹, 그리고 교체되는 기존 프리팹 간의 게임 오브젝트 이름을 매칭합니다.
참고: 이러한 매칭은 이름으로만 이루어지기 때문에 프리팹의 계층 구조 내에 이름이 동일한 게임 오브젝트가 여러 개 있는 경우에는 어느 게임 오브젝트에 매칭해야 할지 예측할 수 없습니다. 따라서 기존 프리팹을 저장할 때 레퍼런스를 유지하고 싶다면 프리팹 내 모든 게임 오브젝트에 고유한 이름을 지정해야 합니다.
참고: 프리팹 내 단일 게임 오브젝트에 동일한 컴포넌트 타입이 두 개 이상 연결된 경우 기존 프리팹을 저장할 때 기존 컴포넌트에 대한 레퍼런스를 유지하려는 경우 비슷한 문제가 발생할 수 있습니다. 이러한 경우 어느 것을 기존 레퍼런스에 매칭해야 할지 예측할 수 없습니다.
2018–07–31 페이지 게시됨
2018.3에서 네스티드 프리팹과 프리팹 배리언트 추가됨