ヒエラルキー上のルートにあるゲームオブジェクトをTagを使わずに全て取得する方法

シーンのオブジェクトを取得することで実現します。

タグを使うコードでオブジェクトを取得のはよく使いますが、これは一部のオブジェクトを非アクティブにして状態を確認するサンプルコードです

// 同一タグのオブジェクトを全て取得するサンプル
GameObject.FindGameObjectsWithTag("タグ");
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class GetHierarchyObject : MonoBehaviour
{
    void Start()
    {
        // シーンを取得
        Scene scene = SceneManager.GetSceneByBuildIndex(0);

        // 取得したシーンのルートにあるオブジェクトを取得
        GameObject[] rootObjects = scene.GetRootGameObjects();

        foreach (var obj in rootObjects)
        {
            Debug.Log($"名前={obj.name}  アクティブか?={obj.activeSelf}");
        }
    }
}

Unity,小技

Posted by hidepon