유니티에서 게임 오브젝트 찾는 법은 한두가지가 아니다.
이번에는 게임 오브젝트 내 게임 오브젝트 즉, 하위 게임오브젝트를 찾는 방법을 정리해보려 한다.
대표적으로 세 가지가 존재한다.
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 모두 얻을 수 있다.
'게임 개발 관련 > Unity3D' 카테고리의 다른 글
[C#] C#에서 수학(Mathf) 관련 함수 사용하기... (0) | 2018.03.25 |
---|---|
[유니티] UGUI - 버튼 활성화 / 비활성화 상황에 따라 변경하기 (0) | 2018.03.24 |
[유니티] C#에서 접근 제한 용어 정리(public, private, protected, internal) (1) | 2018.03.24 |
[유니티] [Tooltip("")]을 통해 유니티 Inspector에서 설명 추가하기 (0) | 2018.03.24 |
[유니티] Input.GetMouseButtonDown()과 OnMouseDown() 차이점 (0) | 2018.03.18 |