Download

Creating custom editor window for custom asset type

I have created custom asset, which will store information in TMap.



TMap<FName, FMyStruct>


Now I have to create editor window, to indirectly expose content of TMap for editing, in editor.

So far I retrieve elements from my TMap like that:



FMyStruct* GetItem(const FName& Key)
{
      return ItemMap.Find(Key);
}


Now real question.
I know that PropertyEditor module, have classes and interfaces, used to create, default widgets for any of provided primitive types (and any customized ones). But it seems, like it operate on entire object (it get properties from object, and display them in details panel).

In my case I don’t have any properties on my object, only TMap and some helper functions etc.

Can I use PropertyEditor to automatically create details view, from pointer of data I retrieved, or do I have to create custom widget which will handle, my custom data type.

To be honest if first option is possible it seems more complicated right now, but I’m sure there are maintainability benefits later down the road and I rather do it this way.

Creating custom widget seems, very straight forward, but I would need to redo it every time I decide to make any changes to structure of my data.
And there is really no complex information. Only standard unreal types, aggregated into structure.

If you want to edit variables via the property editor you need to add the macro:
UPROPERTY(EditAnywhere)
on the line before the variable declaration.