▣ 먼저 Blueprint SaveGame을 생성합니다.
https://docs.unrealengine.com/4.26/ko/InteractiveExperiences/SaveGame/Blueprints/
▣ SaveData에 저장할 배열형식애 구조체를 선택합니다.
▣ 그리고 Blueprint에서 GameInstance를 생성합니다.
▣ GameInstance에 들어와서 FUNTIONS를 추가하는데 Init으로 추가합니다.
▣ Init함수는 초기화하는 함수로 처음시작하는 함수입니다.
처음에 Does Save Game Exist함수를 추가합니다.
Does Save Game Exist함수는 세이브 name에 Slot Name이 존재하는지에 대해 확인하는 함수입니다.
▣ 해당 세이브 파일에 존재하면 원래 있던 세이브파일을 불러와서 다시 세팅해 주는 노드를
해당 세이브 파일이 없으면 다시 생성해서 세팅하는 노드를 완성합니다.
▣ Project Settings에 Maps & Modes에 들어가서 GameInstace를 변경합니다.
그리고 플레이를 하면
▣ 프로젝트파일에 Saved -> SaveGames폴더에 아까 지정한 이름으로 게임세이브파일이 생성된 걸 확인할 수 있습니다.
▣ AC_Inventory에서 SaveInventory 함수를 추가하고 세이브한 ItemSave 배열을 Save Game to Slot 함수를 활용하여 저장하는 노드를 완성합니다.
▣ LoadInventory 함수도 생성하고 Load Game from Slot함수를 활용하여 해당 세이브파일을 불러와 ItemSave에 세팅하는 노드를 완성합니다.
▣ 그리고 AddItem함수에서 아이템 획득 시 세이브하는 함수를 호출하는 노드를 추가합니다.
▣ 그런 다음에 Inventory Widget으로 가서 25개의 Inventory창과 각각 이미지, 아이템 개수를 표기할 Image, Text를 추가합니다. 드래그를 가능하게 하기 위해 각각 아이템 슬롯마다 Button형식으로 생성하고 그 위에 이미지랑 Text를 상속해서 완성합니다.
▣ Widget Graph로와서 Event Custom을 생성하고 inputs에 Item Slot 구조체를 배열형식으로 가져오게 지정합니다.
그리고 DataTable에 존재하는 아이템이라면 첫 번째 Inventory에 아이템 이미지와 해당 아이템 개수를 추가하는 노드를 완성합니다.
▣ 그리고 AC_Inventory에서 Wdiget을 켜주는 노드에 아까 완성한 Event를 호출하는 노드를 추가합니다.
▣ 컴파일 저장 후 플레이하면 아이템을 획득하지 않을 때 획득 했을 때 Inventory가 추가되는 걸 확인할 수 있습니다.
'[ Unreal5 ] > - 언리얼엔진5 실습' 카테고리의 다른 글
언리얼엔진5 FootStep Sound (0) | 2024.05.18 |
---|---|
언리얼엔진5 c++ AnimIstance 변수변경 (0) | 2024.05.16 |
언리얼엔진5 Door Passworld System (0) | 2024.05.13 |
언리얼엔진5 c++ CameraShake (0) | 2024.05.12 |
언리얼엔진5 AI TakeDamage (0) | 2024.05.11 |
댓글