コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】指定した EditorWindow が開いているかどうかエディタ拡張で確認する方法

概要

using UnityEditor;
using UnityEngine;

public static class Example
{
    [MenuItem( "Tools/Hoge" )]
    public static void Hoge()
    {
        var assembly       = typeof( EditorApplication ).Assembly;
        var windowTypeName = "UnityEditor.InspectorWindow";
        var windowType     = assembly.GetType( windowTypeName );
        var windows        = Resources.FindObjectsOfTypeAll( windowType );
        var isOpen         = 1 <= windows.Length;

        Debug.Log( isOpen );
    }
}

例えば Inspector が表示されているかどうかは上記のようなコードで確認できる