うにてぃブログ

主にUnityとC#に関する記事を書いていきます

【Unity】各Scene にある Root GameObject 一覧を取得する

f:id:hacchi_man:20200128001854p:plain

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

public class SampleBehaviour : MonoBehaviour
{
    private void Awake()
    {
        var rootObjects = new List<GameObject>();
        for (var i = 0; i < SceneManager.sceneCount; i++)
        {
            var scene = SceneManager.GetSceneAt(i);
            rootObjects.AddRange(scene.GetRootGameObjects());
        }

        foreach (var rootObject in rootObjects)
        {
            Debug.Log($"[{rootObject.scene.name}] {rootObject.name}");
        }
    }
}