- 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 MonoBehaviours and the default OnGUI of a ScriptableWizard). I can also easily invoke the property drawer in custom editors of MonoBehaviours 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