Property Drawer "No GUI implemented" error in Editor

I am reading all the documentation in order and I just found that I am having issues to recreate a Property Drawer example.

After some research, I found this post that ended up being more clear than the documentation itself (despite being the same example): http://forum.unity3d.com/threads/how-do-property-drawer.197228/

I manage to make it compile, but not to work. So I am not sure where it fails, because the code seems to be up and running. Google didn’t told me anything useful.

Any idea?

28980-propertydrawererror.png

Thanks in advance.

Edit1:

 // Assets/Scripts/Range/RangeAttribute.cs
// Assets/Scripts/Editor/RangeDrawerEditor.cs
// Assets/Scripts/Range/CustomBehaviour.cs

The only diference with the example, is that the 2 non-editor scripts are in a folder called “range”. I’m new to this “Property Drawer” thing, and if Im not able to see the example to really see what can offer, I doubt that I will use it on my own code. The documentation examples look unfinished in that part.

There is in error in the C# documentation for PropertyDrawer. OnGUI needs to be a public override method.

public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) {
    // GUI Implementation
}

I hit this issue and have figured out the problem. I did a standard override in C# and ended up with a call to the base method:

public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
{
    base.OnGUI(position, property, label);
}

It’s the call to the base method that writes the “No GUI implemented” message - presumably to indicate when you haven’t overridden it and it just calls the default implementation.

If you comment out or remove the base.OnGui call the problem is resolved :slight_smile:

I had this problem when opening the override window, this here solved my problem.

public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
{
        EditorGUILayout.PropertyField(property);
}

Quite late answer but the solution is simple.
Change the “base.OnGUI” method by: EditorGUI.PropertyField() method at the end.