#include"Misc/EnumRange.h"enumclassERandomValues:uint8{
First =2,
Second =3,
Third =5,
Fourth =7,
Fifth =11};ENUM_RANGE_BY_VALUES(ERandomValues, ERandomValues::First, ERandomValues::Second, ERandomValues::Third, ERandomValues::Fourth, ERandomValues::Fifth)
遍历方式
for(EFood Food :TEnumRange<EFood>()){}
枚举转字符串
通过StaticEnum。
FString Name =StaticEnum<EFood>()->GetNameStringByValue(static_cast<__underlying_type(EFood)>(EFood::EBanana));
可以对其封装。
template<typenameT>
FString EnumToString(const T EnumValue){
FString Name =StaticEnum<T>()->GetNameStringByValue(static_cast<__underlying_type(T)>(EnumValue));check(Name.Len()!=0);return Name;}