Asset user data/properties

Thank you!

In the future if someone needs this here is an example that I am using:

UCLASS()
class ARSPEECH_API UMyAssetName : public UAssetUserData
{
	GENERATED_BODY()

public:
	UMyAssetName(const FObjectInitializer& ObjectInitializer) :
		Super(ObjectInitializer)
	{}

	UPROPERTY(Category = "MyCat", EditAnywhere, BlueprintReadWrite)
	FString Name;

	UFUNCTION(BlueprintCallable, Category = "MyCat")
	static UMyAssetName	*GetMyAssetNameUserData(UObject* Object)
	{
		if (AActor* Actor = Cast<AActor>(Object))
		{
			Object = Actor->GetRootComponent();
		}

		if (IInterface_AssetUserData* AssetUserData = Cast<IInterface_AssetUserData>(Object))
		{
			return Cast<UMyAssetName>(AssetUserData->GetAssetUserDataOfClass(UMyAssetName::StaticClass()));
		}

		return nullptr;
	}
};

2 Likes