BaseClass
の CustomEditor を作成して、それを ChildClass
にも反映させる場合
いつもどおりの記述では ChildClass
側に反映することができない
using UnityEngine; public class BaseClass : MonoBehaviour { } [UnityEditor.CustomEditor(typeof(BaseClass))] public class BaseClassEditor : UnityEditor.Editor { public override void OnInspectorGUI() { UnityEditor.EditorGUILayout.LabelField("This is Base Class"); base.OnInspectorGUI(); } }
public class ChildClass : BaseClass { }
調べてみると CustomEditor ではもう一つ引数をとることができ
継承先のクラスでも 有効にする場合は これを true にする必要があった
public CustomEditor(System.Type inspectedType, bool editorForChildClasses)
ということで、下記のように CustomEditor を書き換えると、両方に表示させることができた
[UnityEditor.CustomEditor(typeof(BaseClass, true))] public class BaseClassEditor : UnityEditor.Editor { public override void OnInspectorGUI() { UnityEditor.EditorGUILayout.LabelField("This is Base Class"); base.OnInspectorGUI(); } }