I want to display a generic property in the editor, but I can’t figure out how to do this without implementing a bunch of concrete classes for each of my generic implementations.
public abstract class ComponentModel<T> : ScriptableObject
where T : Component
{
public T Data { get; set; }
}
I’m trying to draw the Data
field in the inspector. My attempt:
[CustomEditor(typeof(ComponentModel<>), true)]
public class ComponentModelEditor : UnityEditor.Editor
{
public override void OnInspectorGUI()
{
base.OnInspectorGUI();
var component = (ComponentModel<Component>)target;
EditorGUILayout.ObjectField(component.Data, typeof(Component), false);
}
}
Isn’t working. I don’t really know where to start looking to fix this.