[Unreal Engine 4 C++] Enum의 DisPlayName을 String으로 변환하는 법

2021. 5. 19. 17:16· Unreal Engine/C++

 Enum형에서 DisplayName으로 설정한 값을 화면에 프린트하고 싶을 때 사용하는 방법입니다.

 예제로 사용할 Enum은 다음과 같습니다.

UENUM(BlueprintType)
enum class ECharacterState : uint8
{
	CharacterState_Idle		UMETA(DisplayName = "Idle"),
	CharacterState_Hit		UMETA(DisplayName = "Hit"),
	CharacterState_Dead		UMETA(DisplayName = "Dead")
};

 

 2가지 방법으로 DisplayName을 String으로 변환하는 코드를 작성하겠습니다.

 하나는 하나의 Enum형을 지정하여 DisplayName을 String으로 변환할 것이고, 나머지는 Enum형을 입력하여 해당하는 Enum형의 DisplayName을 String으로 변환하겠습니다.

 

FString UPRStateSystemComponent::GetCharacterStateDisplayToString(ECharacterState NewState) const
{
	const UEnum* CharacterState = FindObject<UEnum>(ANY_PACKAGE, TEXT("ECharacterState"), true);
	if (CharacterState == nullptr)
	{
		return FString("Invalid");
	}

	return CharacterState->GetDisplayNameTextByIndex((int32)NewState).ToString();
}
FString UPRStateSystemComponent::GetEnumdisplayNameToString(const TCHAR * Enum, int32 EnumValue) const
{
	const UEnum* EnumPtr = FindObject<UEnum>(ANY_PACKAGE, Enum, true);
	if (EnumPtr == nullptr)
	{
		return FString("Invalid");
	}

	return EnumPtr->GetDisplayNameTextByIndex(EnumValue).ToString();
}

 

 일정 버전 이상에서 사용하면 GetEnumName is Deprecated, call GetNameStringByIndex instead라는 경고가 생깁니다. 그럴 경우 GetEnumName 대신 GetNameStringByIndex를 사용하시면 됩니다.

 

 해당 코드를 사용법은 다음과 같습니다.

GEngine->AddOnScreenDebugMessage(-1, 1.0f, FColor::Green, "CurrentState : %s", *GetCharacterStateToString(CurrentState));
GEngine->AddOnScreenDebugMessage(-1, 1.0f, FColor::Green, "CurrentState : %s", *GetEnumToString(TEXT("ECharacterState"), static_cast<uint8>(CurrentState));

 

 

저작자표시 (새창열림)

'Unreal Engine > C++' 카테고리의 다른 글

[Unreal Engine 4 C++] 델리게이트에서 AddUObject, AddUFunction  (0) 2021.10.14
[Unreal Engine 4 C++] Timeline에 등록한 Curve 변경하기  (0) 2021.08.19
[Unreal Engine 4 C++] float의 값을 0과 비교할 때  (0) 2021.05.13
[Unreal Engine 4 C++] Delegate에 함수를 추가할 때 주의점  (0) 2021.04.29
[Unreal Engine 4 C++] Delegate  (0) 2021.04.29
'Unreal Engine/C++' 카테고리의 다른 글
  • [Unreal Engine 4 C++] 델리게이트에서 AddUObject, AddUFunction
  • [Unreal Engine 4 C++] Timeline에 등록한 Curve 변경하기
  • [Unreal Engine 4 C++] float의 값을 0과 비교할 때
  • [Unreal Engine 4 C++] Delegate에 함수를 추가할 때 주의점
한돌이
한돌이
GameProgramer 취업준비 중 onestone3647@gmail.com
한돌이
Lykan Studio
한돌이
전체
오늘
어제
  • 분류 전체보기 (102)
    • Daily Life (0)
    • Project (15)
      • Replica (10)
      • CE (1)
      • T (4)
    • Unreal Engine (74)
      • C++ (40)
      • Blueprint (5)
      • AI (5)
      • Effect (3)
      • UMG (2)
      • Error (2)
      • etc. (16)
    • Study (8)
      • C++ (2)
      • Algorithm (0)
      • API (4)
      • Git (2)
    • etc. (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • daily life
  • ADB
  • Study
  • error
  • Project Replica
  • Project T
  • threadsafe
  • Unreal Engine 4 Error
  • project
  • GIT
  • ETC
  • API
  • Unreal Engine4 Effect
  • ProjectT
  • Unreal Engine4
  • Unreal Engine 4
  • 오류
  • UnrealEngine4
  • etc.
  • Unreal Engine etc.
  • c++
  • .etc
  • ProjectReplica
  • Unreal Engine
  • 자소서
  • Unreal Engine 4 C++
  • Unreal Engine 5

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
한돌이
[Unreal Engine 4 C++] Enum의 DisPlayName을 String으로 변환하는 법
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.