1. 蓝图
    通过节点 EnumToString,如下图所示。

  2.  C++
    (1)通过宏
    #define GET_ENUM_DISPLAY_NAME(StaticEnumDefineName, EnumValue)\
        StaticEnum<StaticEnumDefineName>()->GetDisplayNameTextByValue(static_cast<uint8>(EnumValue)).ToString()
    (2)通过函数
    FString AMyActor::ShowEnumDisplayName(EFtSceneObjectType sceneObjectType)
    {
        FString enumDisplayName;
        UEnum* PackageEnum = StaticEnum<EFtSceneObjectType>();
        if (PackageEnum != nullptr) {
            enumDisplayName = PackageEnum->GetDisplayNameTextByValue((int)sceneObjectType).ToString();
        }
        else {
            enumDisplayName = "获取枚举失败:PackageEnum == nullptr";
        }
        return enumDisplayName;
    }
    
    FString AMyActor::ShowEnumDisplayName2(EFtSceneObjectType sceneObjectType)
    {
        FString enumDisplayName;
        UEnum* PackageEnum = FindObject<UEnum>(nullptr, TEXT("/Script/ReflectTest.EFtSceneObjectType"), true);
        if (PackageEnum != nullptr) {
            enumDisplayName = PackageEnum->GetDisplayNameTextByValue((int)sceneObjectType).ToString();
        }
        else {
            enumDisplayName = "获取枚举失败:PackageEnum == nullptr";
        }
        return enumDisplayName;
    }


     

posted on 2023-11-17 11:44  青叶煮酒  阅读(373)  评论(0编辑  收藏  举报