상속받은 클래스 Hero의 인스펙트창.
아래와 같이 해도 버튼이 2개가 나오지 않는다.
CustomEditor(typeof(CharBase))]
public class CharBaseEditor : Editor
{
public override void OnInspectorGUI()
{
base.OnInspectorGUI();
CharBase heroObj = (CharBase)target;
if (heroObj.Test)
{
GUILayout.Button("CHAR");
}
}
}
[CustomEditor(typeof(HeroObj))]
public class HeroObjEditor : Editor
{
public override void OnInspectorGUI()
{
base.OnInspectorGUI();
HeroObj heroObj = (HeroObj)target;
if (heroObj.Test1)
{
GUILayout.Button("HERO");
}
}
}
class CharBase : MonoBehaviour
{
public int Test;
}
class Hero : CharBase
{
public int Test1;
}
해결방안
[CustomEditor(typeof(HeroObj))]
public class HeroObjEditor : Editor
{
Editor charBaseEditor;
public override void OnInspectorGUI()
{
// CharBase의 기본 Inspector UI 출력
if (charBaseEditor == null)
{
charBaseEditor = CreateEditor((CharBase)target, typeof(CharBaseEditor));
}
if (charBaseEditor != null)
{
charBaseEditor.OnInspectorGUI(); // CharBaseEditor의 OnInspectorGUI 호출
}
// HeroObj의 추가적인 Inspector UI 출력
HeroObj heroObj = (HeroObj)target;
if (heroObj.Test1)
{
GUILayout.Button("HERO");
}
}
}
'Unity > Editor Inspector' 카테고리의 다른 글
EditorWindow 에서 OnSelectionChange 호출. (0) | 2021.05.24 |
---|---|
editor 에서 Selection (0) | 2020.11.16 |
GUILayoutButton 버튼 크기 조정 (0) | 2019.09.05 |
클래스 상단에 입력되는 Attribute (0) | 2019.05.28 |
클래스 안에 적용되는 Attribute (0) | 2019.05.28 |