본문 바로가기
Unreal Engine/[Inflearn_rookiss] UE5 Lyra 분석

20. Inventory Component에 대한 이해

by 헛둘이 2024. 11. 14.

현재 저는 Mannequin Spawn을 진행한 이후 Weapon 클래스 설계까지 진행했고,

어제는 QuickBar와 Inventory에 대한 내용을 공부했습니다.

 

이 과정은 모두 Mannequin 애니메이션을 위한 일련의 과정들이며, Mannequin이 Pistol을 들고 총알에 대한 HUD를 관리하기 위해서는 이와 같은 기반 작업들이 필요합니다.

 

Inventory에 대한 구조 분석

인벤토리는 InventoryItemDefinition, InventoryItemInstance로 쪼개지며,

 

InventoryItemDefinition은 아이템에 대한 메타데이터로써 어떤 정의를 가지고 있는지를 표현하는 클래스입니다.

멤버로 이름과 Fragments를 들고 있는데, Fragments는 쉽게 생각해서 Actor - Component 관계라고 이해할 수 있습니다.

예를 들어, StatusFragments의 경우 Ammo와 같은 상태 값들을 관리하는 개념입니다.

 

InventoryItemInstance는 이 TSubclassOf로 Definition을 멤버로 두어서, Definition의 파생 클래스들을 담을 수 있도록 되어 있습니다.

 

여기서 끝이 아니라, Lyra에서 주로 나오는 코딩 스타일 중 하나인, Entry - List로 이어지는 데이터 구성 방식입니다.

위의 Instance를 구조체로 다시 한번 더 래핑하여 BlueprintType으로 관리하며, 이 Entry를 TArray로 묶어서 관리하는 구조체가 List입니다.

 

 

그리고 최종적으로 이 List를 멤버 변수로 두고 관리하는 InventoryManagerComponent가 있습니다.

InventoryManagerComponent는 Controller쪽에 붙는 ControllerComponent로, Pawn에 종속되지 않은 중추적인 역할을 수행하는 Component입니다.

 

Inventory에 대한 부분은 추후 등장할 QuickBar와 엮여 있고, QuickBar가 완성되면, Pistol을 Inventory에서 QuickBar로 로딩하여 플레이어 애니메이션과 연동될 것으로 생각됩니다.

 

댓글