- Home /
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?
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.
You did separate the code into 3 scripts right? Just checking.
Is there any other information you can include?
// 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"
Answer by nschrag · Sep 18, 2014 at 04:08 PM
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
}
Answer by alberyjones · Dec 11, 2017 at 03:38 PM
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 :)
Answer by erickluiss · Feb 19, 2021 at 03:49 AM
Quite late answer but the solution is simple. Change the "base.OnGUI" method by: EditorGUI.PropertyField() method at the end.