[Unity] 유니티 프리팹(Prefab)을 원하는 부모(parent) 오브젝트의 자식(child) 오브젝트로 인스턴스화 하기. Instantiate, transform.SetParent
유니티 프리팹 원하는 부모 오브젝트에 인스턴스화.
안녕하세요 정보처리마법사 입니다.
이번 포스팅의 주제는 프리팹을 원하는 부모 오브젝트에 자식 오브젝트로 인스턴스화 하기에 관한 내용입니다.
일단 위 상황은 하이어라키에 게임오브젝트(Slot[0])가 하나있고, 그 게임오브젝트 하위에 FirstMachine 라는 프리팹 인스턴스가 있는 상태에서
MachineRefresh 메서드를 호출했을 시 기존 자식오브젝트(FirstMachine) 를 디스트로이 하고,
경로 Resources / Prefabs / SecondMachine 에 위치한 프리팹을 Slot[0]의 자식 오브젝트로 인스턴스화 하는 상황입니다.
Instantiate 메서드의 두번째 오버로딩을 써서 저렇게 Parent의 Transform에 바로 붙여도 되고, transform.SetParent() 를 사용 또는,
그냥 Instantiate(Object original) 해서 좌표를 직접 변경해줘도 됩니다.
1
2
3
4
5
6
7
|
public List<GameObject> Slot = new List<GameObject>();
public void MachineRefresh()
{
Destroy(Slot[0].transform.GetChild(0).gameObject);
Instantiate(Resources.Load<GameObject>("Prefabs/SecondMachine"), Slot[0].transform);
}
|
cs |
몇 줄 안되지만 소스코드 입니다.
Ctrl + C , Ctrl + V
이상으로 포스팅을 마칩니다. 감사합니다.
잘 못 된 정보가 있으면 말씀해주세요.
공감버튼 클릭은 작성자에게 큰 힘이 됩니다. 행복한 하루 되세요.
“파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음"