본문 바로가기
[ CODING STUDY ]/》언리얼엔진5 공부

언리얼엔진5 13장 [Enum]

by MRG 2023. 1. 26.
728x90
반응형

▣ 안녕하세요. 

이번장에서는 Enum 열거형을 공부해 보겠습니다. 

열거형은 변하지 않는 고정된 값, 상수를 여러 개 만든다고 생각하시면 됩니다.

 

▣ Enum은 Content Drawer에서 Content에서 마우스 오른쪽 버튼을 클릭하고 BluePrints에서 Enumeration을 클릭하시면 됩니다.

 

▣ 그럼 이런 파일이 생성되는데 생성한 Enum의 이름을 PlayerState라고 지정합니다. 

그리고 PlayerState를 더블클릭합니다.

 

▣ 그럼 위에 이미지처럼 창이 나오는데 여기서 Add Enumerator를 눌러서 Enum값을 추가합니다.

Idle, Attack, Walk 이렇게 3개의 상수를 생성하고 저장을 합니다. 

꼭 저장을 하셔야 합니다.

 

반응형

 

▣ LevelBluePrint에 들어가서 변수를 하나 생성합니다.

변수의 이름을 player이라고 지정하고 Boolean자료형 부분을 클릭하고 검색창에 아까 만들었던 

Player State를 검색하여 지정합니다. 

그렇게 하게 되면 우리가 생성한 player가 아까 생성한 Player State형식에 변수가 되는 겁니다.

▣ 컴파일을 하면 이렇게 Default Value에 아까 만들어던 Enum 값들 Idle, Attack, Walk 있습니다.

이제 이걸 활용하여 Idle이면 PrintText가 나올 수 있게 코드를 작성해 보겠습니다.

 

Enum값은 기본 관계연산자로 비교가 안됩니다.

그렇기 때문에 player을 GET 한 다음에 player GET에서 원을 드래그하고 ==을 검색하면

위에 이미지처럼 Equal(Enum)이라는 연산자가 나옵니다.

이걸 이용해서 Enum 값을 비교할 수 있습니다.

 

▣ 이렇게 비교를 하고 Branch로 조건문을 만들 수 있습니다.

코드를 완성하면 컴파일 저장을 하고 플레이를 누르면 player에 기본 Enum값이 Idle이기 때문에 플레이어가 Idle상태입니다라고 출력됩니다. 

 

▣ 이번에는 Idle, Attack, Walk 상태마다 PrintText를 출력하는 코드를 만들어보겠습니다.

player Get 블록에 원을 드래그 하여 sw라고 검색하면 Switch에 Switch on PlayerState가 나옵니다.

이걸 클릭하면

 

▣ 이렇게 Enum값마다의 조건문에 맞게 Switch가 생성됩니다.

이걸 이용해서 조건문을 완성하고 player에 기본값을 Attack으로 변경한 다음에 컴파일 저장 후

 

▣ 씬 화면에서 플레이 버튼을 클릭하면 이렇게 플레이어가 Attack 상태입니다.라고 출력됩니다.

 

▣ 또한 이런 식으로 Enum to String이라는 블록을 통해서 Enum값을 바로 출력할 수 있습니다.

 

▣ 이 블록은 Player GET에서 to str를 검색하면 Enum to String이라는 함수가 있습니다.

위에 코드처럼 완성하고 컴파일 저장을 하고

 

▣ 씬에서 플레이버튼을 클릭하면 Attack이 출력되는 걸 확인할 수 있습니다.

728x90
반응형

댓글