블루프린트에서 구조체(Struct)와 열거형(Enum)은 데이터를 효과적으로 구조화하고 관리하는 데 사용되는 중요한 도구입니다.
이들을 활용하면 복잡한 데이터 유형을 쉽게 정의하고 사용할 수 있으며, 코드의 가독성과 유지보수성을 크게 향상시킬 수 있습니다.
구조체 (Struct)
개념과 목적
- 정의 : 여러 변수를 하나의 단위로 그룹화한 복합 데이터 타입
- 목적 : 관련된 데이터를 논리적으로 묶어 관리하고 재사용성을 높임
구조체 생성 방법
- 콘텐츠 브라우저에서 우클릭
- 'Blueprint Class' 선택 후 'Structure' 선택
- 구조체 이름 지정 (예 : S_PlayerStats)
구조체 정의 예제
구조체 변수 생성 및 접근
1. 변수 생성
- 'My Blueprint' 패널에서 변수 추가
- 변수 유형을 생성한 구조체로 설정
2. 변수 접근
- Get 노드를 사용하여 전체 구조체 가져오기
- Break 노드를 사용하여 개별 멤버에 접근
구조체 사용 예제
열거형 (Enum)
개념과 목적
- 정의 : 명명된 상수 집합을 정의하는 사용자 정의 데이터 타입
- 목적 : 관련된 상수들을 그룹화하여 코드의 가독성과 유지보수성 향상
열거형 생성 방법
- 콘텐츠 브라우저에서 우클릭
- 'Blueprint Class' 선택 후 'Enumeration' 선택
- 열거형 이름 지정 (예 : E_PlayerState)
열거형 정의 예제
열거형 사용법
1. 변수 생성
2. 값 설정 및 비교
- Set 노드로 값 설정
- Equal (==) 노드로 값 비교
3. 스위치 문과 연계
- Switch on E_PlayerState 노드 사용
열거형 사용 예제
데이터 구조화와 코드 가독성 향상 팁
1. 의미 있는 이름 사용
- 구조체와 열거형에 명확하고 설명적인 이름 부여
- 예 : S_PlayerInventoryItem, E_WeaponType
2. 관련 데이터 그룹화
- 논리적으로 연관된 데이터를 구조체로 묶기
- 예 : S_WeaponStats (데미지, 사거리, 발사 속도 등)
3. 열거형을 활용한 상태 관리
- 객체의 상태나 유형을 열거형으로 정의
- 예 : E_EnemyBehavior (순찰, 추적, 공격, 도망)
4. 중첩 구조체 활용
- 복잡한 데이터 구조를 중첩 구조체로 표현
- 예 : S_GameSave (플레이어 정보, 인벤토리, 퀘스트 상태 등)
5. 주석 활용
- 구조체와 열거형의 목적과 사용법에 대한 주석 추가
6. 기본값 설정
- 구조체 멤버의 적절한 기본값 설정으로 초기화 용이성 증대
예제 : 아이템 시스템
이 예제에서는 구조체와 열거형을 사용하여 게임의 아이템 시스템을 구현합니다.
E_ItemType
열거형은 아이템의 유형을 정의하고, S_ItemProperties
구조체는 각 아이템의 속성을 그룹화합니다.
이를 통해 아이템 데이터를 체계적으로 관리하고, 아이템 유형에 따른 다양한 동작을 쉽게 구현할 수 있습니다.
구조체와 열거형을 효과적으로 활용하면 블루프린트의 복잡성을 줄이고 데이터 관리를 용이하게 할 수 있습니다.