Enum转FString

示例:

//打印为 “NormalAttack”
FString EnumName = StaticEnum<EAttackCategory>()->GetNameStringByValue(static_cast<int64>(AttackCategory)));


//打印为 “EAttackCategory::NormalAttack”
FString EnumName = StaticEnum<EAttackCategory>()->GetValueAsName(static_cast<int64>(AttackCategory)));

示例2:

//.h
EAttackCategory AttackType;

//.cpp
//打印为 “NormalAttack”
static const UEnum* EnumType = FindObject<UEnum>(ANY_PACKAGE, TEXT("EAttackCategory"));
FString EnumName = EnumType->GetNameStringByIndex(static_cast<uint32>(AttackType)));

//或
FString AEnumTest::GetEnumName(FINTLFunnelStep InStep)
{
	UEnum* Enum = StaticEnum<FINTLFunnelStep>();
	FName name = Enum->GetNameByIndex(InStep);

	//打印为 “name=kEnterGameShowEnterGame”
	UE_LOG(LogTemp, Warning, TEXT("name=%s"),*name.ToString());
	return name.ToString();
}

int32转Enum

示例:

TEnumAsByte<EGameplayModOp::Type> FCalculateData::GetModifierOp(int32 inModifierOp)
{
	return static_cast<EGameplayModOp::Type>(inModifierOp);
}

原文:https://blog.csdn.net/ccccce/article/details/109496539

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐