주녘공부일지

[Unity] Prefab이란? (+ 불러오기) 본문

GameEngine/UnityEngine - Class

[Unity] Prefab이란? (+ 불러오기)

주녘 2022. 1. 25. 17:14
728x90

프리팹(Prefab) : 게임 오브젝트 -> 재사용 가능한 에셋 // 템플릿

프리팹의 장점

- 프리팹은 각 씬마다 동일한 게임오브젝트를 생성하거나 사용해야할 때 사용하면 편리함

- 각 프로퍼티 값이 변경되었을 때 씬마다 일일히 수정을 하지 않아도 됨

 즉, 재사용성↑,  프리팹 인스턴스로 한번에 관리 용이

 

프리팹은 씬에 올라온 오브젝트에 접근할 수 없는데, 이를 하기 위해서는 인스턴스화된 오브젝트를 게임매니저에게 가지게 하여 프리팹의 오브젝트를 사용할 때 게임 매니저에 접근하여 처리하는 로직을 작성하는 등의 방법으로 사용 가능

 + 당연히 프리팹끼리는 접근 가능

 

프리팹 중첩 : Nested Prefabs

- 프리팹 내에 다른 프리팹 인스턴스를 포함

 

프리팹 상속 : Prefab Variant

- 기존 프리팹의 인스펙터값을 오버라이드

 


프리팹을 불러오는 방법

1. Resources.Load()를 이용

ex) Resources.Load<type>("경로"); // 기본 경로를 포함함 ( Assets/Resources/ )

- Assets의 Resources 폴더 안의 경로에 프리팹이 존재해야 불러올 수 있음

- Resources 폴더 : 런타임에서 불러오는 에셋이 저장된 폴더

즉, 런타임에서 불러와야 한다면 Resources.Load()를 사용해야 함

 

2. SerializeField variable 

[SerializeField] GameObject prefab; // 하이어라키창에서 직접 넣어서 불러올 수 있음

+ public GameObject prefab; 으로 사용하여도 무방 // 외부 객체로부터 변경이 가능해짐

 

728x90