Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Unreal Engine5
- 1563
- IFileDialog
- const
- baekjoon
- RVO
- UnrealEngine5
- directx
- winapi
- UnrealEngine4
- algorithm
- 티스토리챌린지
- Frustum
- softeer
- UE5
- DirectX11
- 언리얼엔진5
- C++
- 팰린드롬 만들기
- 줄 세우기
- 오블완
- 프로그래머스
- 2294
- 백준
- NRVO
- C
- GeeksForGeeks
- DeferredRendering
- RootMotion
- Programmers
Archives
- Today
- Total
Game Develop
[UE5] Enum class 사용법. 본문
const UEnum* enumPtr = FindObject<UEnum>(ANY_PACKAGE, TEXT("EMainPlayerSkillStates"), true);
if (enumPtr != nullptr)
{
for (int i = 0; i < enumPtr->NumEnums(); ++i)
{
EMainPlayerSkillStates enumState = (EMainPlayerSkillStates)(enumPtr->GetValueByIndex(i));
//UE_LOG(LogTemp, Log, TEXT("> %s"), *enumPtr->GetNameByIndex(i).ToString());
}
}
구글링 시, 언리얼4버전에서는 FindObject할 때 꺽쇠로 캐스팅할 클래스명시 안하는걸로 되어있는데, 언리얼5에서는 저렇게해줘야 된다.
그리고 FindObject해서 리턴받은 enumPtr을 이용해서 각 enumState값을 아래와 같이 FString, FName 등으로 가져올 수 있다. i는 해당 enumState의 index이다. (맨 enumState를 3개 정의했으면 각각 인덱스는 0,1,2)
UE_LOG(LogTemp, Log, TEXT("%s"), *enumPtr->GetDisplayNameTextByIndex(i).ToString());
UE_LOG(LogTemp, Log, TEXT("%s"), *enumPtr->GetNameByIndex(i).ToString());
UE_LOG(LogTemp, Log, TEXT("%s"), *enumPtr->GetNameStringByIndex(i));
결과 :
LogTemp: DisplayNone
LogTemp: EMainPlayerSkillStates::None
LogTemp: None
여기서 GetDisplayNameTextByIndex같은 경우는, enum class를 정의할 떄 각 상태에 DisplayName을 정의했을 시, 해당 문자열을 FText로 가져오는 함수이다.
None을 보면 DisplayName을 DisplayNone이라 해놨는데, 이 문자열이 로그에 출력됐던 것이다.
그리고 GetNameByIndex를 할 경우에는 해당 enumClass까지 포함한 FName인 문자열을 리턴한다.
EMainPlayerSkillStates::None <-- 이렇게
근데 GetNameStringByIndex를 할 경우에는 그냥 enumState에만 해당하는 문자열을 FString으로 리턴한다.
이 차이가 있다.
None <-- 이렇게
'UnrealEngine5 > 이것저것' 카테고리의 다른 글
[UE5] 몽타주 관련함수 호출순서. (0) | 2024.06.14 |
---|---|
[UE5] Enum class 상태들 순서 변경시 주의할점. (0) | 2024.06.11 |
[UE5] TMap의 key값으로 FName을 사용하면 빠른 편이다. (0) | 2024.05.01 |
[UE5] 언리얼 용어들 (0) | 2024.03.26 |
[UE5] 언리얼에서의 생성자는 여러번 호출된다. (0) | 2024.03.19 |