【Unity】 아이의 요소를 Find를 사용하지 않고 For문으로 취득한다.

7648 단어 Unity3DC#Unity

소개(추기)



덧붙여 : 코멘트로 한층 더 스마트한 처리를 써 주셨으므로, 그쪽도 아울러 소개해 둡니다.

GameObject를 Find로 가져오려면 당연히 Find할 객체를 지정해야 하기 때문에,
취득하고 싶은 오브젝트의 수만큼 분이 증가합니다. 이것이 수가 늘어나면 귀찮게 ....

눈치 채면 이런 일에 ...


이것을 어떻게든 해소하고 싶고, 여러가지 시험한 결과 For문을 사용해 짧고, 그래서 관리가 편해졌기 때문에
기사로 정리하려고 생각한 대로입니다.

스크립트(추기)



추가 : 추가 스크립트

GetChildNext.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class GetChild : MonoBehaviour
{
    public GameObject[] Parents;
    List<GameObject> Paneles;

    void Start()
    {
        Paneles = new List<GameObject>();

        foreach(GameObject p in Parents)
        {
            foreach(Transform child in p.transform)
            {
                Paneles.Add(child.gameObject);
            }
        }

        for(int i = 0; i < Paneles.Count; i++)
        {
            Debug.Log(Paneles[i]);
        }
    }
}

이 처리에서는 부모를 1, 아이를 2, 아이의 아이를 3으로 했을 때, Parents에 세트 하고 있는 아이를 취득하므로,
1을 설정하면 2의 객체는 검색되지만 3은 검색되지 않습니다.
(아래 GetChild.cs에서도 동일합니다)

3을 얻고 싶다면 2를 설정하면 얻을 수 있습니다.


GetChild.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class GetChild : MonoBehaviour
{
    public GameObject[] Parents;
    GameObject Panel;
    List<GameObject> Paneles;

    void Start()
    {
        Paneles = new List<GameObject>();

        for(int v = 0; v < Parents.Length; v++)
        {
            for(int i = 0; i < Parents[v].transform.childCount; i++ )
            {
                Panel = Parents[v].transform.GetChild(i).gameObject;
                Paneles.Add(Panel);
            }
        }

        for(int i = 0; i < Paneles.Count; i++) //確認用の表記
        {
            Debug.Log(Paneles[i]);
        }
    }
}

단지 이것뿐입니다.

사용법은 다음과 같습니다.

1, 어떤 객체에 연결
2, 아이를 취득하고 싶은 부모 오브젝트를 Parents 인스펙터에 세트
 (Size를 변경하면 세트할 수 있는 수도 늘어납니다)


사이고에게



이 방법을 생각해 낸 것은 인터페이스의 기사를 보고 있어, 이런 느낌에 잘
정리할 수 없을까~라는 막연한 추억으로 시험해 본 결과,
「뭔가 생겼어」라는 느낌이었습니다.

자신의 지식량이 이전에 비해 늘고 있구나라는 실감을 얻을 수 있었기 때문에 좋았습니다.
이 방법이 누군가에게 도움이되도록.

좋은 웹페이지 즐겨찾기