Unity

Unityのシーン一覧を取得する

More than 3 years have passed since last update.


EditorBuildSettingsから拾う

using UnityEngine;

using UnityEditor;

[InitializeOnLoad]
public class SceneFinder
{
static SceneFinder ()
{
Debug.Log ("----- EditorSettings -----");
foreach (var scene in EditorBuildSettings.scenes) {
Debug.Log (scene);
}
}
}

ただし、この方法だとビルド設定で登録してあるシーンしか拾えない

ので、


AssetDatabaseから拾う

using UnityEngine;

using UnityEditor;

[InitializeOnLoad]
public class SceneFinder
{
static SceneFinder ()
{
Debug.Log ("---- AssetDatabase ----");
foreach (var guid in AssetDatabase.FindAssets("t:Scene")) {
var path = AssetDatabase.GUIDToAssetPath (guid);
Debug.Log (AssetDatabase.LoadMainAssetAtPath (path));
}
}
}

これならAssets配下に存在するシーンを全て取得できる。

他にはSystem.IO.Directoryを使ってシーンっぽいファイル名を検索しまくる、なんて方法もありそうですね。