CustomEditor and inherited components

I have two classes (base and inherited) and one custom editor component for base class.

Base:
1)

public class HF_Manager : MonoBehaviour
{
	public virtual void OnUpdateData() { }
}

And inherited:
2)

public class HF_ChairsManager : HF_Manager
{
	public override void OnUpdateData() { /* special case */ }
}

And I have a CustomEditor script for base class (HF_Manager):

[CustomEditor(typeof(HF_Manager))]
public class HF_ManagerEditor : Editor
{
	public override void OnInspectorGUI()
	{
		DrawDefaultInspector();

		if (GUILayout.Button("Update Data"))
		{
			HF_Manager t = (HF_Manager)target;
			if (t != null)
				t.OnUpdateData();
		}
	}
}

My task is to make “Update Data” button for each inherited component, which should fire HF_Manager’s OnUpdateData() method.

But now I see “Update Data” button only on HF_Manager component…

alt text

1 Answer

1

RTFM.

alt text

Wow, i didn't notice this change... In the past you couldn't create one customeditor for a whole inheritance tree. Have to check the release notes if they mention this change somewhere ;) Thanks for this. edit Found it ;) It has been introduced in [Unity 4.1 (7th point under "Improvements")][1] [1]: https://unity3d.com/unity/whats-new/unity-4.1