Unreal Engine - Save Game

2025. 4. 2. 23:09·Unreal Engine

게임에서 맵 해금 시스템과 캐릭터 해금 시스템을 구현하고 싶어, 어떤 방식을 택할지 고민중에 있었다.

  • 처음으로 떠올린 생각은 GameInstance 였는데, 현재 구현하는 시스템이 템플릿을 이용하다보니 만들어진 GameInstance를 수정하는 것 보다 다른 것을 이용해보고 싶었다.
  • 그래서 SaveGame 이라는 시스템을 찾게 되었고, 어떤 식으로 사용했는지 정리해 볼 것이다.

 

 

1. SaveGame


USaveGame이라는 클래스를 상속받아서 클래스를 만들 수 있고, 이 시스템은 게임이 종료되더라도 유지되는 특성을 가지고 있다.

  • 각 맵에 해당하는 변수를 아래와 같이 만들었다.
  • Level 1의 경우는 항상 열려있기 때문에 필요가 없다.
#pragma once

#include "CoreMinimal.h"
#include "GameFramework/SaveGame.h"
#include "SaveLevel.generated.h"

UCLASS()
class FOODRUMBLE_API USaveLevel : public USaveGame
{
	GENERATED_BODY()

public:
	UPROPERTY(BlueprintReadWrite)
	bool bIsLevel2Lock;
	UPROPERTY(BlueprintReadWrite)
	bool bIsLevel3Lock;
	UPROPERTY(BlueprintReadWrite)
	bool bIsLevel4Lock;
};

 

만약 레벨 1이 클리어된 경우 이 변수를 true로 바꿔주게 된다.

  • Level 블루프린트에서 아래 로직을 수행하였다.
  • "Create Save Game Object" 노드는 SaveGame을 만들게 된다.
  • "Save Game to Slot" 의 경우 해당 정보를 가지고 Slot Name을 지정해서 값을 저장할 수 있다.

 

이 값들을 가지고 UI에서 아래와 같이 값을 업데이트 해줄 수 있다.

  • "Load Game from Slot" 노드를 통해 casting 후 값을 가져올 수 있다.

 

  • "Does Save Game Exist" 노드를 통해 해당 Slot에 저장되어있는지 확인할 수 있다.

  • "Delete Game in Slot" 을 통해 전에 저장된 내용을 지울수도 있다.
    • 그 이유는 게임을 종료해도 데이터가 저장되기 때문에 지우는 기능이 필요하다.

 

 

2. 동작 모습


 

'Unreal Engine' 카테고리의 다른 글

Unreal Engine - 데디케이티드 서버 3 (Property Replication)  (0) 2025.04.06
Unreal Engine - 데디케이티드 서버 2  (1) 2025.04.03
Unreal Engine - 야구게임(데디케이티드 서버)  (0) 2025.03.29
Unreal Engine - 데디케이티드 서버 개념 및 실습  (0) 2025.03.27
Unreal Engine - 플러그인 만들기  (0) 2025.03.26
'Unreal Engine' 카테고리의 다른 글
  • Unreal Engine - 데디케이티드 서버 3 (Property Replication)
  • Unreal Engine - 데디케이티드 서버 2
  • Unreal Engine - 야구게임(데디케이티드 서버)
  • Unreal Engine - 데디케이티드 서버 개념 및 실습
gbleem
gbleem
gbleem 님의 블로그 입니다.
  • gbleem
    gbleem 님의 블로그
    gbleem
  • 전체
    오늘
    어제
    • 분류 전체보기 (189)
      • Unreal Engine (73)
      • C++ (19)
      • 알고리즘(코딩테스트) (32)
      • TIL (60)
      • CS (4)
      • 툴 (1)
  • 블로그 메뉴

    • 홈
    • 카테고리
  • 링크

    • 과제용 깃허브
    • 깃허브
    • velog
  • 공지사항

  • 인기 글

  • 태그

    addonscreendebugmessage
    템플릿
    character animation
    enhanced input system
    cin함수
    gamestate
    C++
    motion matching
    DP
    map을 vector로 복사
    Vector
    additive animation
    상속
    applydamage
    actor 클래스
    blend pose
    싱글턴
    BFS
    매크로 지정자
    const
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
gbleem
Unreal Engine - Save Game
상단으로

티스토리툴바