UE4如何在关卡之间保存数据? 1.游戏实例2.使用保存系统

问题描述

我正在为我的游戏制作一个死亡系统。玩家获得 3 条生命,一旦 3 条生命都用完,就会打开一个死亡画面。我遇到了一个问题。我需要拯救剩下的生命,以便我可以在不同级别之间访问它。我以前从未需要保存任何数据,所以我不知道如何做到这一点。这是我的死亡系统蓝图的图片
Blueprint

解决方法

有几种方法可以在不同级别之间保存数据。

1.游戏实例

GameInstance 是一个对象,从游戏过程的开始到结束都存在。它不会在液位开关上移除。所以,为了传递一些数据,你可以创建你自己的 GameInstance 类,创建你需要在关卡之间传递的属性,并在 Project Settings > Maps & Modes > Game Instance 中设置你的 GameInstance 类。

切换关卡前,只需在游戏实例中设置变量,切换后阅读。

https://ibb.co/DR5zS5M

https://ibb.co/FYbyzfB

https://ibb.co/vx7s2SX

2.使用保存系统

使用保存系统,您只需保存进度并在切换后加载。这里的想法是在关卡切换前使用SaveGameToSlot保存所有数据,之后使用LoadGameFromSlot加载数据。

虽然这不是一个优雅的解决方案。如果您只在游戏开始时加载保存并正确地将其与 GameInstance 结合,使用保存游戏对象作为进度容器,那么它会非常有效,这样您就可以保存进度,并使用一个对象将其传递到不同的级别。

https://ibb.co/qndzbp6

SaveGame 蓝图的创建方式与 GameInstance 蓝图的创建方式相同。查看屏幕截图