그리고 마지막으로, 위 처럼 A object 밑에 빈 object인 B object를 만들어서 넣어줍시다.
1. transform.GetChild
public class exam : MonoBehaviour{
GameObject child = null;
void Start() {
gameobject = transform.GetChild(0).gameObject; // 첫 번째 자식 object 찾기
Debug.Log(child); // console에 출력
}
}
첫 번째 방법은 transform.GetChild를 이용하는 방법입니다. 위에서 연 exam 파일을 위와 같이 작성해줍니다 저장을 하고 unity로 돌아가서 실행을 해주면 아래와 같이 콘솔 창에 뜨는 것을 볼 수 있습니다 child 객체의 이름이 나오네요
1.2 1번 응용
이 함수를 이용해서 A object 밑에 여러개의 object들이 있다면 모두 찾을 수 있어요
아래에 4개의 child가 있다면 for문을 이용해서 모두 찾을 수 있겠죠??
for(int i=0; i<4; i++){
transform.GetChild(i).gameObject.SetActive(false);
}
위 처럼 순회 하면서 A의 하위의 4개의 object를 모두 비 활성화 상태로 만들 수 있어요
2. transform.FindChild(string str)
public class exam : MonoBehaviour{
GameObject child = null;
void Start() {
gameobject = transform.FindChild("B"); // 이름으로 object 찾기
Debug.Log(child); // console에 출력
}
}
두번째 방법은 FindChild 메소드를 이용하여 찾는 방법 입니다. 이는 이름으로 자식 오브젝트를 찾는 방법이에요 코드를 이번에는 위와 같이 작성하고 다시 실행해 보면 결과가 같은 것을 보실 수 있을거에요
3. 하위 오브젝트 개수 구하기
위의 응용에서 A object의 밑에 있는 child를 모두 비활성화 상태로 바꾸는 예제를 해봤잖아요?? 그런데 child가 몇개가 있는지 모를 정도로 많다면 어떻게 해야할까요??? 그럴때 사용할 수 있는 것이 바로 하위 오브젝트의 개수를 구하는 것입니다. 바로 아래와 같이 childCount속성을 이용해서 쉽게 구할 수 있어요