For converting enums, we use the following function:
const FString EnumToString(const TCHAR* Enum, int32 EnumValue)
{
const UEnum* EnumPtr = FindObject<UEnum>(ANY_PACKAGE, Enum, true);
if (!EnumPtr)
return NSLOCTEXT("Invalid", "Invalid", "Invalid").ToString();
#if WITH_EDITOR
return EnumPtr->GetDisplayNameText(EnumValue).ToString();
#else
return EnumPtr->GetEnumName(EnumValue);
#endif
}
We use it like so:
ETeam Team = ETeam::Alpha;
FString message = TEXT("Our enum value: ") + EnumToString(TEXT("ETeam"), static_cast<uint8>(Team));
// This prints: "Our enum value: ETeam::Alpha"