유니티에서 게임 오브젝트 찾는 법은 한두가지가 아니다.
이번에는 게임 오브젝트 내 게임 오브젝트 즉, 하위 게임오브젝트를 찾는 방법을 정리해보려 한다.
대표적으로 세 가지가 존재한다.
transform.FindChild(string str)
transform.GetChild(int index)
transform.childCount
자식이 무엇인가.
하이어라키(Hierarchy)에서 계층 구조를 이루고 있는 형태를 말한다.
상위에 GameObject가 부모이며 들여쓰기 된 하위 1~6까지의 6개의 GameObject가 자식이다.
이제, 자식을 찾는 방법을 알아보자.
1. 이름으로 자식 GameObject를 찾는 방법(자기 자신)
transform.FindChild("이름");
2. 번호 순으로 자식 GameObject를 찾는 방법(자기 자신)
transform.GetChild(번호);
여기서 자기 자신이란, 해당 스크립트가 컴포넌트가 된 상태를 말한다.
만약, 외부의 게임오브젝트를 찾는 것은 앞에 어떤 GameObject인지를 명시해줘야 한다.
3. 이름으로 다른 게임오브젝트의 자식 GameObject를 찾는 방법(외부 게임오브젝트)
otherGameobject.transform.FindChild("이름");
4. 번호 순으로 다른 게임오브젝트의 자식 GameObject를 찾는 방법(외부 게임오브젝트)
otherGameobject.transform.GetChild(번호);
물론 otherGameobject는 스크립트에서 어떤 게임오브젝트인지 선언해줘야 한다.
그 외에도 childCount 가 존재하는데, 이것은 자식 오브젝트의 개수를 알 수 있다.
Transform에 연결되어 있는 자식 트랜스폼들의 갯수입니다.
즉, transform.childCount 으로 자식의 개수를 불러 올 수 있다. ( 위 같은 경우 6 출력)
원래 기본적으로 자식의 Transform을 얻고 싶을 때 사용하는 것이다.
하지만 이를 통하여 GameObject나 Component 모두 얻을 수 있다.
'개발 > Unity & C#' 카테고리의 다른 글
[유니티] Mathf.Lerf를 통해 두 값 사이의 거리 구하기 (0) | 2018.03.25 |
---|---|
[유니티] UGUI로 버튼 생성 시, 활성화/비활성화 변경하는 방법... (0) | 2018.03.24 |
[유니티] 유니티에서 [Tooltip]사용하기 (0) | 2018.03.24 |
[유니티] 씬 이름 불러오기 : SceneManager.GetActiveScene().name (0) | 2018.03.23 |
[유니티] 마우스 클릭 관련 함수 Input.GetMouseButtonDown & OnMouseDown (3) | 2018.03.18 |