虚幻5C++中根据所有枚举值遍历数组
时间: 2024-02-25 11:58:24 浏览: 19
在虚幻5C++中,可以使用反射系统来获取枚举类型的所有枚举值,并遍历它们。以下是一个示例代码:
```cpp
// 定义枚举类型
UENUM()
enum class EMyEnum : uint8
{
Value1,
Value2,
Value3
};
// 遍历枚举类型的所有枚举值
for (TFieldIterator<UEnum> EnumIt(StaticStruct()); EnumIt; ++EnumIt)
{
UEnum* Enum = *EnumIt;
if (Enum)
{
// 检查是否是目标枚举类型
if (Enum->GetEnumName() == FName("EMyEnum"))
{
// 遍历枚举值
for (int32 i = 0; i < Enum->NumEnums(); ++i)
{
const FString EnumName = Enum->GetNameStringByIndex(i);
const int32 EnumValue = Enum->GetValueByIndex(i);
// Do something with the enum name and value
}
}
}
}
```
代码中使用了`TFieldIterator`模板类来遍历所有的枚举类型,然后使用`UEnum`类来获取枚举类型的名称和值。遍历时需要检查是否是目标枚举类型,然后才能遍历它的所有枚举值。