다음과 같은 구조의 GameObject 가 있다.
Item
ItemTextMesh
여기서 TextMesh 컴포넌트인 ItemTextMesh를 찾는다.
TextMesh itemText = item.GetComponentInChildren<TextMesh>();
그런데 여기서 itemText.gameObject 의 Active 상태가 false이면, itemText를 찾지 못한다(itemText = null).
이 때 Transform으로 찾으면 찾아진다.
Transform itemTransform = item.transform.FindChild("ItemTextMesh");
TextMesh itemText = itemTransform.GetComponent<TextMesh>();
그리고 또 하나. 이름이 Item인 gameObject 프리팹을 가지고,
GameObject item = (GameObject)Instantiate(itemPrefab, new Vector3(0, 0, 0), Quaternion.identity);
이렇게 프리팹을 Instantiate 했을 때, 원래의 "Item" 이름에 "(Clone)" 이 붙는다. 그래서,
transform.FindChild("Item(Clone)");
이런 식으로 찾아야 한다.
'unity tech.' 카테고리의 다른 글
자식 객체 Destroy 할 때 주의 (0) | 2015.08.31 |
---|---|
MonoBehavior 객체 사용시 주의 (0) | 2015.08.31 |
컴포넌트 찾는 예들 (0) | 2015.08.05 |
3D text 클릭 또는 터치 (0) | 2015.08.05 |
프리팹 알파값 변경 (0) | 2015.08.05 |