金币类就是学习篇五和六的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-&

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

被折叠的 条评论
为什么被折叠?



