5 - 游戏存档功能

光速过一遍蓝图编程,本文将光速过一遍蓝图中的游戏存档功能,包括:

  • SaveGame类;

SaveGame类

为了让玩家退出游戏后能从上次退出的地方继续游戏,需要用到UE的保存系统。其中,SaveGame类用来存储游戏数据。

要想使用这个类,首先得要创建一个蓝图子类:

然后就能在蓝图中添加要存储的变量了。

保存游戏信息

有了保存数据的容器,还要知道把它放在哪。这里选择玩家的Character类,然后就能编写保存游戏信息的蓝图了:

这里编写了一个SaveRound宏,用于存储当前波次信息。首先会检测SaveGame类的蓝图子类是否合法,如果不合法,则使用CreateSaveGameObject()函数创建一个实例。然后将当前波次信息存储到蓝图子类实例的对应变量中。最后使用SaveGametoSlot()函数将蓝图子类实例中的信息存储到名为Save Slot Name的存档文件中。

读取游戏信息

接下来编写一个读取波次信息的LoadRound宏。首先它会调用DoesSaveGameExist()函数判断存档文件是否存在,只有存在的情况才会继续读信息。然后调用LoadGameFromSlot()函数读取存档信息。最后将获取到的信息赋给对应变量即可。

删除游戏信息

如果想删除游戏信息,需要调用DeleteGameinSlot()函数,一个使用它的例子如下:

首先该宏尝试获取PlayerCharacter,然后检查该角色的存档文件是否存在,存在的话就能删除了。

参考资料

  • 中文翻译:《UE5蓝图可视化脚本游戏开发完全学习教程》
  • 英文原版:《Blueprints Visual Scripting for Unreal Engine 5 Third Edition》