上一篇说到使用数据表读取数据,如果我开始玩游戏之后,被怪物打了失去了一部分血量,这个时候我想退出游戏,当我再次进入的时候,希望仍然保持被怪物打之后的血量,而不是重新读取了数据表,这个时候就需要使用SaveGame类去存储和加载数据。注:SaveGame类的存储是放在本地的。
创建SaveGame类
这里继续使用上一篇中的UserInfo,添加需要保存的数据:
UPROPERTY()
int32 SavedLevel;
UPROPERTY()
float SavedCurrentHealth;
UPROPERTY()
float SavedCurrentMana;
UPROPERTY()
float SavedCurrentExp;
创建两个变量:
/*
* 存储的实例变量
*/
UGridShootSG* GridShootSG;
/*
* 存储的插槽名称
*/
FString SlotName = "UserInfo";
存储和加载方法:
/*
* 存储
*/
void SaveGame();
/*
* 读取存储的数据
*/
void LoadSaveGame();
如果SG变量不存在,那么就去创建一个存储的Object,再去赋值,并使用SaveGameToSlot存储;
void ABaseCharacter::SaveGame()
{
if (!GridShootSG)
{
GridShootSG = Cast<UGridShootSG>(UGameplayStatics::CreateSaveGameObje