Unity에서 제공하는 기능
Prefab은 GameObject를 에셋의 형태로 저장해 사용 하는 것
- 컴포넌트, 프로퍼티 포함
Prefab object들은 여러개 생성해 사용할 경우 단순 복사와 달리 동기화가 이루어 짐
- object를 단순 복사할 경우 수정 사항을 복사된 object들 하나 하나 변경해야 하지만 Prefab object들은 동기화를 통해 Prefab 에셋만 변경하면 한번에 변경이 이루어 진다
1. 똑같은 오브젝트를 많이 배치해야 하는 경우...
- Prefab을 사용하지 않는다면 필요한 컴포넌트를 매번 부착해줘야 하는 비효율적인 작업이 필요해짐
2. 1번과 같은 경우를 피하고자 오브젝트를 복사했는데, 오브젝트의 수정이 필요한 경우...
- 예를 들어 오브젝트의 scale을 2배로 키우려고 할 경우, 복사된 모든 오브젝트들을 하나 하나 수정해줘야 한다...
재사용이 편하다
여러군데 배치되어있는 prefab 인스턴스들을 한꺼번에 수정하기 쉽다
컴포넌트만 제대로 만들어 준다면, 프로그래머에게 요청하지 않고도 손쉽게 게임 요소들을 수정할 수 있다
Prefab 원본 그대로는 게임 씬에서 보거나 사용할 수 없으며 이것을 게임 씬에 배치하고 사용할 수 있게 생성하는 과정을 인스턴스화 라고 한다
GameObject의 Instantiate() 함수를 이용해 인스턴스화 한다