UEnum and GetValueAsString

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"

2 Likes