로그 출력 등 디버깅 용도로 enum 값을 출력하고 싶을 때가 있다.
1 2 3 4 5 6 7 8 9 | FString APlayerCharacter::GetEStateAsString(EStateType EnumValue) { const UEnum* enumPtr = FindObject<UEnum>(ANY_PACKAGE, TEXT("EStateType"), true); if (!enumPtr) { return FString("Invalid"); } return enumPtr->GetNameStringByIndex((int32)EnumValue); } | cs |
이와 같이 쓰면 된다.
enum은 blueprinttype으로 되있어야 한다.
참고로 4.16버전 이전에는 GetEnumName을 썼는데, 그 이상의 버전에서 쓰면 GetEnumName is deprecated, call GetNameStringByIndex instead 라는 문구가 뜬다.
GetNameStringByIndex 를 쓰자.
참고할 Deprecated Functions
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | // Deprecated Functions DEPRECATED(4.16, "FindEnumIndex is deprecated, call GetIndexByName or GetValueByName instead") int32 FindEnumIndex(FName InName) const { return GetIndexByName(InName, EGetByNameFlags::ErrorIfNotFound); } DEPRECATED(4.16, "FindEnumRedirects is deprecated, call GetIndexByNameString instead") static int32 FindEnumRedirects(const UEnum* Enum, FName EnumEntryName) { return Enum->GetIndexByNameString(EnumEntryName.ToString()); } DEPRECATED(4.16, "GetEnum is deprecated, call GetNameByIndex instead") FName GetEnum(int32 InIndex) const { return GetNameByIndex(InIndex); } DEPRECATED(4.16, "GetEnumNameStringByValue is deprecated, call GetNameStringByValue instead") FString GetEnumNameStringByValue(int64 InValue) const { return GetNameStringByValue(InValue); } DEPRECATED(4.16, "GetEnumName is deprecated, call GetNameStringByIndex instead") FString GetEnumName(int32 InIndex) const { return GetNameStringByIndex(InIndex); } DEPRECATED(4.16, "GetDisplayNameText with name index is deprecated, call GetDisplayNameTextByIndex instead") FText GetDisplayNameText(int32 NameIndex) const { return GetDisplayNameTextByIndex(NameIndex); } DEPRECATED(4.16, "GetEnumText with name index is deprecated, call GetDisplayNameTextByIndex instead") FText GetEnumText(int32 NameIndex) const { return GetDisplayNameTextByIndex(NameIndex); } DEPRECATED(4.16, "GetEnumTextByValue with name index is deprecated, call GetDisplayNameTextByValue instead") FText GetEnumTextByValue(int64 Value) { return GetDisplayNameTextByValue(Value); } | cs |
'언리얼 > 기능, 팁 등등 노트' 카테고리의 다른 글
[UE4]데칼 생성(스폰)(코드) (0) | 2018.11.13 |
---|---|
[UE4]코드 상에서 머티리얼 로드 (0) | 2018.11.13 |
[UE4]캐릭터의 이동 및 회전 보간(마우스 클릭, TopdownView) (0) | 2018.10.25 |
[UE4]캐릭터의 속도 계산 (0) | 2018.08.10 |
[UE4]월드 안의 액터 혹은 오브젝트 읽기 (0) | 2018.08.09 |