-
[Unity3D] Prefab 실시간 생성하기 (Instantiate)Programing 2020. 7. 3. 22:12
Unity3d를 하다보면 프리팹을 만들어 놓고, 실시간으로 불러서 사용해야 할 때가 있습니다.
그럴때 사용하는 것이 인스턴스화(Instantiate) 입니다.
Asstes 경로에 Resources 폴더를 생성하고 난 후에 하위 경로에 프리팹을 생성하기만 하면 준비가 끝납니다.
그러면 간단한 방법으로 호출을 할 수 있습니다.
public class prefabcopy : MonoBehaviour
{GameObject prefab_obj;
void Start(){
prefab_obj = Resources.Load("Prefabs/prefab_sample") as GameObject;
}
void Update()
{
if (Input.GetKeyDown(KeyCode.A))
{GameObject obj = MonoBehaviour.Instantiate(prefab_obj);
obj.name = "clone";
Vector3 pos = new Vector3(0, 0, 0);
obj.transform.position = pos;
}
}
}위의 이미지와 같이 Assets/Resources/Prefabs 폴더에 prefab_sample이라는 이름의 프리팹을 생성하고 난 후에
Resources.Load("Prefabs/prefab_sample") as GameObject;
이 부분으로 지정된 프리팹을 GameObject 형태로 로드를 시켜줍니다.
GameObject obj = MonoBehaviour.Instantiate(prefab_obj);
obj.name = "clone";
Vector3 pos = new Vector3(0, 0, 0);
obj.transform.position = pos;
여기서 미리 로드된 프리팹을 객채화 시켜주는 것입니다.
clone 이라는 이름과 함께 position은 0 으로 세팅 했습니다.
기호에 따라 이름과 위치, 크기, 각도 등을 name, position, scale, rotation 등을 통해 다양하게 변경 할 수 있습니다.
'Programing' 카테고리의 다른 글
[Unity3D] Timer 만들기 (0) 2021.07.23