UE5 显示枚举的 DisplayName

发布时间 2023-11-17 11:47:46作者: 青叶煮酒
  1. 蓝图
    通过节点 EnumToString,如下图所示。

  2.  C++
    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;
    }