- Home /
Using CustomPropertyDrawer in OnGUI of ScriptableWizard
I have a ScriptableWizard
where I have overwritten the OnGUI
entirely and that works nicely. I have a CustomPropertyDrawer
for a non-MonoBehaviour class that works nicely with when invoked as a PropertyField
(both from MonoBehaviour
s and the default OnGUI
of a ScriptableWizard
). I can also easily invoke the property drawer in custom editors of MonoBehaviour
s with:
EditorGUILayout.PropertyField(serializedObject.FindProperty("inventoryType"));
But as ScriptableWizard
doesn't seem to have a serializedObject
, I don't get how I would manually invoke the PropertyField
in my custom OnGUI
of the ScriptableWizard
. On the other hand, it's obviously possible, as it is done when I don't overwrite the OnGUI
.
Here's minimal CustomPropertyDrawer
for reference:
using UnityEngine;
using System.Collections;
using UnityEditor;
using System.Linq;
using PointClick;
[CustomPropertyDrawer(typeof(InventoryTypeRestriction))]
public class InventoryTypeEditor : PropertyDrawer {
static string[] tagNames = new string {"Potion", "Armor", "Key"};
public override void OnGUI (Rect position, SerializedProperty property, GUIContent label)
{
EditorGUI.BeginProperty(position, label, property);
position = EditorGUI.PrefixLabel(position, GUIUtility.GetControlID(FocusType.Passive), label);
int indent = EditorGUI.indentLevel;
EditorGUI.indentLevel = 0;
SerializedProperty flags = property.FindPropertyRelative("flags");
flags.intValue = EditorGUI.MaskField(position, flags.intValue, tagNames, EditorStyles.popup);
EditorGUI.indentLevel = indent;
EditorGUI.EndProperty();
}
}
And a minimal InventoryTypeRestriction
would look as:
[System.Serializable]
class InventoryTypeRestriction {
[HideInInspector]
public int flags = 0;
}
So the question is: How do I invoke a CustomPropertyDrawer
from inside a custom OnGUI
of a ScriptableWizard
?
Your answer
Follow this Question
Related Questions
Custom Editor script to show non-native class in inspector 1 Answer
Multiple Cars not working 1 Answer
Property Drawer and Inheritance 0 Answers
Distribute terrain in zones 3 Answers
Why is my propertydrawer being automatically disabled? 1 Answer