0
Cannot Reproduce

Custom property provider script not getting generated

Eric Welwood 2 years ago updated by Lazlo Bonin (Lead Developer) 2 years ago 7

My class InventoryItemPicker has a custom inspector but I get this error.

I already did the following:

  • Generated Inspectors
  • Selected Xefier.Inventory in Assemblies
  • Selected InventoryItemPicker in Types

InvalidOperationException: Missing property provider for 'Xefier.Inventories.InventoryItemPicker'.
Did you generate serialized property providers?
Ludiq.SerializedPropertyUtility.CreateTemporaryProperty (System.Type type) (at C:/Users/Lazlo/Projects/Ludiq/Ludiq.Core/Editor/SerializedProperties/SerializedPropertyUtility.cs:102)
Ludiq.CustomPropertyDrawerInspector.Initialize () (at C:/Users/Lazlo/Projects/Ludiq/Ludiq.Core/Editor/Inspection/Special/CustomPropertyDrawerInspector.cs:15)
Ludiq.InspectorProvider.CreateDecorator (System.Type decoratorType, Ludiq.Metadata metadata) (at C:/Users/Lazlo/Projects/Ludiq/Ludiq.Core/Editor/Inspection/InspectorProvider.cs:13)
Ludiq.SingleDecoratorProvider`3[TDecorated,TDecorator,TAttribute].GetDecorator (.TDecorated decorated) (at C:/Users/Lazlo/Projects/Ludiq/Ludiq.Core/Editor/Decorators/SingleDecoratorProvider.cs:80)
Ludiq.XInspectorProvider.Inspector (Ludiq.Metadata metadata) (at C:/Users/Lazlo/Projects/Ludiq/Ludiq.Core/Editor/Inspection/InspectorProvider.cs:173)
Ludiq.LudiqGUI.GetInspectorHeight (Ludiq.Inspector parentInspector, Ludiq.Metadata metadata, Single width, UnityEngine.GUIContent label) (at C:/Users/Lazlo/Projects/Ludiq/Ludiq.Core/Editor/Interface/LudiqGUI.cs:54)
Ludiq.SystemObjectInspector.GetHeight (Single width, UnityEngine.GUIContent label) (at C:/Users/Lazlo/Projects/Ludiq/Ludiq.Core/Editor/Inspection/Special/SystemObjectInspector.cs:214)
Ludiq.Inspector.GetCachedHeight (Single width, UnityEngine.GUIContent label, Ludiq.Inspector parentInspector) (at C:/Users/Lazlo/Projects/Ludiq/Ludiq.Core/Editor/Inspection/Inspector.cs:159)
UnityEngine.Debug:LogException(Exception)
Ludiq.Inspector:Draw(Rect, GUIContent) (at C:/Users/Lazlo/Projects/Ludiq/Ludiq.Core/Editor/Inspection/Inspector.cs:117)
Ludiq.LudiqGUI:Inspector(Metadata, Rect, GUIContent) (at C:/Users/Lazlo/Projects/Ludiq/Ludiq.Core/Editor/Interface/LudiqGUI.cs:59)
Bolt.VariableDeclarationInspector:OnValueGUI(Rect) (at C:/Users/Lazlo/Projects/Ludiq/Bolt.Flow/Editor/Variables/VariableDeclarationInspector.cs:90)
Bolt.VariableDeclarationInspector:OnGUI(Rect, GUIContent) (at C:/Users/Lazlo/Projects/Ludiq/Bolt.Flow/Editor/Variables/VariableDeclarationInspector.cs:55)
Ludiq.Inspector:Draw(Rect, GUIContent) (at C:/Users/Lazlo/Projects/Ludiq/Ludiq.Core/Editor/Inspection/Inspector.cs:70)
Ludiq.LudiqGUI:Inspector(Metadata, Rect, GUIContent) (at C:/Users/Lazlo/Projects/Ludiq/Ludiq.Core/Editor/Interface/LudiqGUI.cs:59)
Ludiq.MetadataListAdaptor:DrawItem(Rect, Int32) (at C:/Users/Lazlo/Projects/Ludiq/Ludiq.Core/Editor/Inspection/MetadataListAdaptor.cs:231)
Ludiq.ReorderableList.ReorderableListControl:DrawListItem(Rect, IReorderableListAdaptor, Int32) (at C:/Users/Lazlo/Projects/Ludiq/Ludiq.Core/Editor/Dependencies/ReorderableList/ReorderableListControl.cs:889)
Ludiq.ReorderableList.ReorderableListControl:DrawListContainerAndItems(Rect, IReorderableListAdaptor) (at C:/Users/Lazlo/Projects/Ludiq/Ludiq.Core/Editor/Dependencies/ReorderableList/ReorderableListControl.cs:1159)
Ludiq.ReorderableList.ReorderableListControl:Draw(Rect, Int32, IReorderableListAdaptor, DrawEmptyAbsolute) (at C:/Users/Lazlo/Projects/Ludiq/Ludiq.Core/Editor/Dependencies/ReorderableList/ReorderableListControl.cs:1681)
Ludiq.ReorderableList.ReorderableListControl:DrawControlFromState(Rect, IReorderableListAdaptor, DrawEmptyAbsolute, ReorderableListFlags) (at C:/Users/Lazlo/Projects/Ludiq/Ludiq.Core/Editor/Dependencies/ReorderableList/ReorderableListControl.cs:308)
Ludiq.ReorderableList.ReorderableListGUI:DoListFieldAbsolute(Rect, IReorderableListAdaptor, DrawEmptyAbsolute, ReorderableListFlags) (at C:/Users/Lazlo/Projects/Ludiq/Ludiq.Core/Editor/Dependencies/ReorderableList/ReorderableListGUI.cs:595)
Ludiq.ReorderableList.ReorderableListGUI:ListFieldAbsolute(Rect, IReorderableListAdaptor) (at C:/Users/Lazlo/Projects/Ludiq/Ludiq.Core/Editor/Dependencies/ReorderableList/ReorderableListGUI.cs:647)
Ludiq.MetadataCollectionAdaptor:Field(Rect, GUIContent) (at C:/Users/Lazlo/Projects/Ludiq/Ludiq.Core/Editor/Inspection/MetadataCollectionAdaptor.cs:170)
Bolt.VariableDeclarationsInspector:OnGUI(Rect, GUIContent) (at C:/Users/Lazlo/Projects/Ludiq/Bolt.Flow/Editor/Variables/VariableDeclarationsInspector.cs:30)
Ludiq.Inspector:Draw(Rect, GUIContent) (at C:/Users/Lazlo/Projects/Ludiq/Ludiq.Core/Editor/Inspection/Inspector.cs:70)
Ludiq.LudiqGUI:Inspector(Metadata, Rect, GUIContent) (at C:/Users/Lazlo/Projects/Ludiq/Ludiq.Core/Editor/Interface/LudiqGUI.cs:59)
Bolt.VariablesEditor:OnGUI(Rect, GUIContent) (at C:/Users/Lazlo/Projects/Ludiq/Bolt.Flow/Editor/Variables/VariablesEditor.cs:20)
Ludiq.Inspector:Draw(Rect, GUIContent) (at C:/Users/Lazlo/Projects/Ludiq/Ludiq.Core/Editor/Inspection/Inspector.cs:70)
Ludiq.Inspector:DrawLayout(GUIContent, Single, RectOffset) (at C:/Users/Lazlo/Projects/Ludiq/Ludiq.Core/Editor/Inspection/Inspector.cs:253)
Ludiq.Individual:OnGUI() (at C:/Users/Lazlo/Projects/Ludiq/Ludiq.Core/Editor/Inspection/Root/LudiqRootObjectEditor.cs:53)
Ludiq.OptimizedEditor`1:OnInspectorGUI() (at C:/Users/Lazlo/Projects/Ludiq/Ludiq.Core/Editor/Inspection/OptimizedEditor.cs:31)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
Bolt Version:
Unity Version:
Platform(s):
Scripting Backend:
.NET Version (API Compatibility Level):
Pending Review

Hi Eric,

If you go to the Generated/Ludiq.Core/Property Providers, do you see a script called:

PropertyProvider_Xefier_Inventories_InventoryItemPicker.cs?

No, looks like that script wasn't generated.

Can you try regenerating the inspectors? This is what's missing.

Do you get any error while generating the inspectors?

I tried regenerating inspectors a few times in 2 different projects and it never showed up, also no errors during generation. I suspect it may be due to the fact that:

  • CustomPropertyDrawer located in an Assets/*/Editor folder
  • InventoryItemPicker is located in Xefier.Inventory.dll (Xefier.Inventory added to Assemblies)

I noticed that a different custom inspector generated but both scripts are in the Assets folder.


As a temporary work around I've manually created the file that was supposed to be generated and will use source control to restore it if it gets deleted during generation.

It seems that Bolt doesn't detect that your type has a custom property drawer.

It's defined as a script right, not as a DLL?

Can you send me the file that defines the property drawer?

Cannot Reproduce

Marking as cannot reproduce seeing there is no answer or similar report.

Feel free to comment again with steps & files to reproduce.