UE4 Chapter 6-5. UI : 저장, 불러오기(SaveGame)
카테고리: UE4 Lesson 1
태그: UE4 Game Engine
인프런에 있는 황대희님의 언리얼 엔진4 3D 횡스크롤 게임 만들기 강의를 듣고 정리한 필기입니다. 😀
언리얼 엔진 공식 문서 https://docs.unrealengine.com/ko/index.html
🔔 SaveGame 블루프린트
언리얼 엔진에서는 게임의 데이터를 로컬 환경에 저장하고 불러들이는 기능을
SaveGame
클래스로 제공한다.
- 이 블루프린트 안에서 작성하는 변수들의 상태는 로컬 환경에도 그대로 보존이 된다.
- 게임 데이터를 저장하면 📂Saved/SaveGames 폴더에 게임 데이터가 저장된다.
부모 클래스를 Save Game
으로 하여 “SideSrollSaveGameBP” 이름의 블루프린트를 생성한다.
🚩 “SideSrollSaveGameBP” SaveGame 블루프린트 이벤트 그래프
게임을 종료하고 나중에 다시 켜도, 내가 어디까지 클리어 했는지를 보존하여 이를 바탕으로 클리어 한 스테이지들을 불러올 수 있어야 한다. 따라서 이를 로컬 환경(📂Saved/SaveGames)에서도 보존하고 저장할 Integer 타입의 ClearStage
변수를 추가한다. 로컬에도 저장되는 이 변수값을 사용하여 게임을 저장하고 불러오는 작업은 게임 인스턴스 블루프린트인 "SideSrollGameInstance" 에서 해볼 것이다.
🔔 저장(Save)
먼저 “SideSrollSaveGameBP” SaveGame 블루프린트 를 참조할, “SideSrollSaveGameBP” 오브젝트 레퍼런스 타입의 SideScrollSaveGameRef
라는 변수를 추가한다.
저장하는 함수 작성
🚩 “SideScrollGameInstance” 게임 인스턴스 블루프린트
“SideSrollSaveGameBP”의 ClearStage
변수값은 로컬 환경에도 저장이 된다. 따라서 저장을 한다는 것은 이 “SideSrollSaveGameBP”의 ClearStage
변수값을 세팅한다는 의미가 된다.
- 로컬 환경에 저장하는 기능을 하는 Save 함수를 직접 만들었다.
SideScrollSaveGameRef
가 유효 하면, 즉 “SideScrollGameInstance” 인스턴스가 이미 존재하면- “SideScrollGameInstance” 인스턴스 생성하는 과정을 스킵하고 바로
ClearStage
세팅 과정으로 넘어간다.
- “SideScrollGameInstance” 인스턴스 생성하는 과정을 스킵하고 바로
SideScrollSaveGameRef
가 유효하지 않으면 “SideScrollGameInstance” 인스턴스가 아직 없다는 것이기에 생성해주고 이를SideScrollSaveGameRef
에 저장해주어야 한다.- Create Save Game Object 👉 “SideSrollSaveGameBP” 힐딩
SideScrollSaveGameRef
에 이를 할당
- “SideSrollSaveGameBP”의
ClearStage
에 “SideScrollGameInstance”의ClearStage
값을 세팅한다.- 즉 “SideScrollGameInstance”의
ClearStage
값을 SaveGame 블루프린트에 넘겨 로컬로 저장하여 기억하는 것이다.
- 즉 “SideScrollGameInstance”의
- Save Game Slot 👉 로컬 파일로 저장한다.
SideScrollSaveGameRef
을 넘기면 “SideSrollSaveGameBP” 블루프린트의 모든 변수 및 설정 값들이 “SideScroll”이름의 파일로 저장된다.
저장 실행
🚩 “DefaultPlayGameMode” 게임 모드 블루프린트 이벤트 그래프
보스를 죽이고 Stage Clear 처리 하는 부분 맨 끝에 “SideScrollGameInstance”의 Save 함수를 호출한다.
🔔 불러오기(Load)
불러오기 함수 작성
🚩 “SideScrollGameInstance” 게임 인스턴스 블루프린트
- 로컬 환경에 불러오는 기능을 하는 Load 함수를 직접 만들었다.
- Local Game Slot 👉 로컬 파일을 불러온다.
- “SideScroll” 이름의 파일을 불러오되 이를
SaveGame
클랙스 타입으로 불러온다.- 따라서 “SideSrollSaveGameBP” 로 형변환 해주는게 필요하다.
- “SideScroll” 이름의 파일을 불러오되 이를
SideScrollSaveGameRef
에 로딩한 “SideSrollSaveGameBP” 인스턴스를 할당한다.- 로컬에 저장했었던 “SideSrollSaveGameBP”의
Clear Stage
값을 “SideScrollGameInstance”의Clear Stage
에 복사한다.
- Local Game Slot 👉 로컬 파일을 불러온다.
불러오기 실행
🚩
MainMenu
레벨 블루프린트
게임을 시작하면 제일 먼저 마주하는 것이 메인 메뉴 레벨이므로 메인 메뉴 블루프린트에서 호출하자. 메인 메뉴 위젯을 불러오는 작업 끝에 Load 함수를 호출한다.
🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄
댓글 남기기