【Unity】EditorWindowにinspectorと同じ内容を表示する

やりたいこと

CustomEditor でオーバーライドされた ScriptableObject
inspector の表示を EditorWindow 上で表示できるようにしたい.

ScriptableObject を作成

[CreateAssetMenu(fileName = "DemoData", menuName = "Create/DemoData")]
public class DemoData : ScriptableObject
{
    public int Value;
}

CustomEditor を作成

[CustomEditor(typeof(DemoData))]
public class DemoDataEditor : Editor
{
    public override void OnInspectorGUI()
    {
        var style = new GUIStyle(EditorStyles.label) { richText = true };
        EditorGUILayout.LabelField("<b><size=50>DemoData!</size></b>", style, GUILayout.Height(100));
        base.OnInspectorGUI();
    }
}

EditorWidow を作成

public class DemoDataWindow : EditorWindow
{
    [MenuItem("Window/Open DemoDataWindow")]
    private static void Open()
    {
        GetWindow<DemoDataWindow>(ObjectNames.NicifyVariableName(typeof(DemoDataWindow).Name));
    }

    Editor _editor;

    public void OnGUI()
    {
        if (Selection.activeObject != null)
        {
            Editor.CreateCachedEditor(Selection.activeObject, null, ref _editor);
            _editor.OnInspectorGUI();
        }
    }
}

結果