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;
}
};