UE4C++学习篇(七)--- 金币类道具拾取后的数据保存(SaveGame)

本文介绍了如何在UE4 C++游戏中实现玩家金币的保存和加载功能。通过创建和使用SaveGame类,将玩家的金币数量在游戏保存和重新加载时保持一致。保存过程包括检查SaveGame对象是否存在、赋值和调用SaveGameToSlot方法。读取则涉及从指定保存槽加载SaveGame对象并更新玩家金币数。示例代码将此逻辑置于PlayerController中,但实际应用可根据需求调整位置。

金币类就是学习篇五和六的Actor创建和碰撞处理,添加完金币的模型和设置完参数,我们就可以处理一下把金币数量保存,下次进入游戏的时候还是上次的金币数量。使用到的类就是SaveGame类。

我这边是把这个读取和加载放到了PlayerController类中处理,没有直接放到角色身上,这里只是学习如何使用,具体应该放到哪里,应该根据自己的需求处理。

变量添加:

//玩家金币数量
int32 PlayerCoins;

//保存游戏的类指针
UFPSSaveGame* SaveGameInstance;

//保存游戏插槽名称
FString SaveGameSlotName;

保存:

//如果不存在,创建
if (!SaveGameInstance)
{
	SaveGameInstance = Cast<UFPSSaveGame>(UGameplayStatics::CreateSaveGameObject(UFPSSaveGame::StaticClass()));
}
//赋值
SaveGameInstance->PlayerCoins = PlayerCoins;
//保存
UGameplayStatics::SaveGameToSlot(SaveGameInstance, SaveGameSlotName, 0);

1.先判断SaveGame类是否存在,不存在,根据CreateSaveGameObject创建一个对象;

2.为自己保存的数值赋值;

3.SaveGameToSlot,根据保存名称和index,保存在自己的这个对象实例中;

读取:

//如果不存在,读取
if (!SaveGameInstance)
{
	SaveGameInstance = Cast<UFPSSaveGame>(UGameplayStatics::LoadGameFromSlot(TEXT("PlayerCoins"), 0));
}
//赋值
PlayerCoins = SaveGameInstance-&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡西莫多说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值