오브젝트를 생성할때 하이어라키 상단에 생성되는게아닌 다른 오브젝트 하위에 생성하는방법이다.
GameObject temp = Instantiate(prefab, this.transform.position, Quaternion.identity);
temp.transform.parent = this.transform;
오브젝를 만들때 temp라는 변수에 해당 오브젝트를 담아준다음에 해당 오브젝트를 다른 오브젝트에 parent에 넣어주면 된다.
단 UI를 생성해서 넣어줄때는
Parent of RectTransform is being set with parent property. Consider using the SetParent method instead, with the worldPositionStays argument set to false. This will retain local orientation and scale rather than world orientation and scale, which can prevent common UI scaling issues.
(RectTransform의 부모가 부모 속성으로 설정되고 있습니다. worldPositionStays 인수를 false로 설정하여 SetParent 메소드를 대신 사용하십시오. 이렇게하면 월드 오리엔테이션과 스케일이 아닌 로컬 오리엔테이션과 스케일이 유지되어 일반적인 UI 스케일링 문제를 방지 할 수 있습니다.)
위와 같은 오류가 발생하게된다.
오류를 해결하기 위해서는 parent를 사용하지말고 SetParent 메소드를 사용하면된다.
GameObject temp = Instantiate(prefab, this.transform.position, Quaternion.identity);
temp.transform.SetParent(this.transform);
'Unity(C#)' 카테고리의 다른 글
Unity 오브젝트풀 (0) | 2020.05.06 |
---|---|
Unity(C#) int,double,float의 Null값 삽입하기 (0) | 2020.05.03 |
Unity(C#) Dictionary (0) | 2020.05.03 |
Unity(C#) 람다식 (0) | 2020.04.29 |
Uniyt(C#) 조건부 연산자 ?: (0) | 2020.04.29 |