You need to wrap it in a UWidget. Here’s an example from one of my plugins with GetPaletteCategory determining where the widget shows up for UMG users:
/** A UMG widget wrapper for the spreadsheet widget */
UCLASS()
class GOOGLESHEETSOPERATOR_API UGoogleSheetsOperatorSpreadsheetWidget : public UWidget
{
GENERATED_BODY()
public:
#if WITH_EDITOR
virtual const FText GetPaletteCategory() override
{
return INVTEXT("Google Sheets Operator");
}
#endif
Then you need to implement two virtual functions:
protected:
// UWidget interface
virtual TSharedRef<SWidget> RebuildWidget() override;
virtual void ReleaseSlateResources(bool bReleaseChildren) override;
// End of UWidget interface
RebuildWidget essentially returns SNew of your Slate widget and ReleaseSlateResources is called when your widget is destroyed, so you can reset shared pointers in the UWidget and the underlying Slate Widget.
If you want to expose properties of the underlying Slate Widget, you’ll need to create a duplicate UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "CategoryName", meta = (ExposeOnSpawn = true))
in the UWidget then pass them in when you return your slate widget in RebuildWidget.
Runtime DataTable : Import and export game data to and from CSV or Google Sheets while your game is running!
easyCSV : Read data from any CSV and put them in an easy-to-access string map!
iTween : Free, smooth, procedural object animation