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を使ってシーンっぽいファイル名を検索しまくる、なんて方法もありそうですね。