처음에는 꺼놓은 오브젝트를 특정상황에 Active시키고 싶어서 Find를 이용했는데

Find가 안되길래 왜 안될까 하고 봤더니 inactive 해놓은 오브젝트는 Find가 안된다고 한다.

 

inactive한 오브젝트는 찾을 수 없으니 활성화 된 부모의 밑에 넣어주고

그 부모의 밑에 들어간 SetActive(false)된 자식을 찾는다.

 

 

GameObject.Find("부모").transform.FindChild("내가찾을비활성화오브젝트").gameObject.SetActive(true);

 

그런데 막상 위에 코드를 써보니까

 

 

초록색 밑줄과 함께 이런 안내가 뜬다.

 

그래서 FindChild대신 Find를 썼다.

GameObject.Find("부모").transform.Find("내가찾을비활성화오브젝트").gameObject.SetActive(true);

 

그런데 몇 번째에 붙은 자식인지 알거나 항상 정해져 있으면 굳이 Find("내가찾을비활성화오브젝트") 하지 말고 getchild(몇 번째 자식인지)가 더 낫다.

 

 

- Canvas에서 겹치는 Image들의 우선순위는 Hierarchy의 순서



- 만약 UI가 클릭되지 않을 경우 가장 기본적인 의심으로는 Event System을 지우지 않았는지 확인하기

 

 

GameObject Balloon;

 

-

 

Balloon = (GameObject)Instantiate(BalloonPrefab, new Vector3(...), Quaternion.identity);

Balloon.transform.parent = gameObject.transform;

 

 

자식으로 붙일 때 transform을 이용해서 붙임

 

+)

마찬가지로 생성 할 때가 아니더라도

ObjectA.transform.parent = ObjectB.transform; 하면 자식으로 변경되어 Hierarchy 창에서 확인할 수 있다.

+ Recent posts