開かれているEditorWindowを取得する方法です。
ソースコード
まずクラスにアクセスできる場合は次のようにして取得します。
var window = EditorWindow.GetWindow(typeof(UnityEditor.SceneView));
内部クラスとして定義されているWindowにアクセスする場合は、次のようにリフレクションを使う必要があります。
var window = EditorWindow.GetWindow(typeof(EditorWindow).Assembly.GetType("UnityEditor.GameView"));
全エディタウィンドウの型を取得する
Unityで定義されているEditorWindowの型をすべて取得するには次のようにします。
[MenuItem("Tools/Show All Window Names")] private static void ShowAllWindowNames() { var windowNames = System.AppDomain.CurrentDomain .GetAssemblies() .SelectMany(assembly => assembly.GetTypes()) .Where(assembly => assembly.IsSubclassOf(typeof(EditorWindow))) .Select(assembly => assembly.FullName) .ToArray(); foreach (var windowName in windowNames) { Debug.Log(windowName); } }