본문 바로가기
개발/Unity

유니티 - 자식 오브젝트 접근, 순회하기 (Iterating Child GameObjects)

by 피로물든딸기 2022. 7. 19.
반응형

Unity 전체 링크

 

자식 오브젝트를 순회하기 위해 빈 오브젝트들로 만들어서 아래와 같은 하이어라키를 만들어보자.

 

그리고 Parent에 SearchChild.cs 오브젝트를 추가하자.

 

첫 번째 순회 방법 - 자식의 오브젝트 개수를 구한 후 GetChild로 접근

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SearchChild : MonoBehaviour
{
    void Start()
    {
        int numOfChild = this.transform.childCount;
        for (int i = 0; i < numOfChild; i++)
            Debug.Log(transform.GetChild(i).name);
    }
}

 

실행 결과는 아래와 같다.

자식 오브젝트만 찾고 순회한다.


두 번째 순회 방법 - GetComponentsInChildren

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SearchChild : MonoBehaviour
{
    void Start()
    {
        Transform[] myChildren = this.GetComponentsInChildren<Transform>();
        
        foreach(Transform child in myChildren)
            Debug.Log(child.name);
    }
}

 

실행 결과는 아래와 같다.

자신을 포함자식, 자손 오브젝트를 모두 찾고 순회한다.


세 번째 순회 방법 - foreach + transform

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SearchChild : MonoBehaviour
{
    void Start()
    {
        foreach (Transform child in this.transform)
            Debug.Log("here" + child.name);
    }
}

 

첫 번째와 마찬가지로 자식만 루프를 통해 접근한다.

 

전체 코드는 다음과 같다.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SearchChild : MonoBehaviour
{
    void Start()
    {
        // 1. 자식만 순회
        int numOfChild = this.transform.childCount;
        for (int i = 0; i < numOfChild; i++)
            Debug.Log(transform.GetChild(i).name);

        // 2. 자신을 포함 자손도 순회
        Transform[] myChildren = this.GetComponentsInChildren<Transform>();

        foreach (Transform child in myChildren)
            Debug.Log(child.name);
        
        // 3. 자식만 순회
        foreach (Transform child in this.transform)
            Debug.Log(child.name);
    }
}

 

Unity Plus:

 

Easy 2D, 3D, VR, & AR software for cross-platform development of games and mobile apps. - Unity Store

Have a 2D, 3D, VR, or AR project that needs cross-platform functionality? We can help. Take a look at the easy-to-use Unity Plus real-time dev platform!

store.unity.com

 

Unity Pro:

 

Unity Pro

The complete solutions for professionals to create and operate.

unity.com

 

Unity 프리미엄 학습:

 

Unity Learn

Advance your Unity skills with live sessions and over 750 hours of on-demand learning content designed for creators at every skill level.

unity.com

반응형

댓글