やりたいこと
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(); } } }
結果