WavePanels를 Prefab으로 만들어둔다.
이후, 불러오기 위해서는 Resources 경로에다가 저장해둔다.
Script에서 GameObject로 WavePanels을 지정한다음, Start에서 Instantiate로 WavePanels Prefab을 불러온다.
이때, UI이기 때문에 SetParent를 이용해서, 부모 Canvas를 지정해준다.
여기서는 "PopUpCanvas"라는 부모를 두고, WavePanels를 자식으로 지정해줌.
다음에 WavePanels의 위치를 조정해주기 위해서 .GetComponent<RectTransform>()을 이용한다.
위치의 경우 anchoredPosition을 이용하여 (0,0,0) = Vector3.zero 에 위치시킨다.
지맘대로 Scale이 변하는 문제도 있었기 때문에, localScale = new Vector3(1,1,1) 정해준다.
해당 스크립트를 이용하면, 어떤 Scene에서든 원할 때 WavePanels를 불러올 수 있다.
private GameObject WavePanels;
void Start()
{
WavePanels = Instantiate(Resources.Load("WavePanels", typeof(GameObject))) as GameObject;
WavePanels.transform.SetParent(GameObject.Find("PopUpCanvas").transform);//WavePanels가 PopUpCanvas의 Child로 들어간다
WavePanels.GetComponent<RectTransform>().anchoredPosition = Vector3.zero;
WavePanels.GetComponent<RectTransform>().localScale = new Vector3(1,1,1);
if(WavePanels)
{
Debug.Log("WavePanels is Ready");
}
}
'유니티' 카테고리의 다른 글
[유니티] 구글인앱리뷰 설정하기 (0) | 2023.04.15 |
---|---|
Particle System으로 만들어진 GameObject의 Rotation이 안되는 문제 (0) | 2023.03.28 |
[유니티] DateTime.Utc로 시간 기록/시분초 구현하기 (0) | 2023.03.16 |
[유니티] Prefab을 Script에서 불러오기(Resource 폴더 사용) (0) | 2023.03.16 |
[C#] 한 글자 씩 나타나게 하는 방법. Substring 이용. (0) | 2023.03.12 |