Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

保存游戏

前言

保存游戏可能很复杂. 比如, 我们可能会想要储存跨多个关卡的多个物品的信息. 更高级的保存游戏可能需要存储关于具有任意数量的对象的附加信息. 当游戏变得更加复杂时, 这将让保存函数可以随着游戏一同变得更加复杂.

备注

如果你想保存玩家的设置,可以用 ConfigFile 来实现这个目的。

参见

You can see how saving and loading works in action using the Saving and Loading (Serialization) demo project.

识别持久化对象

首先,我们应该确定在游戏会话中要保存那些对象,以及我们要保存这些对象中的哪些信息。本教程中,我们将使用“分组”来标记和处理要保存的对象,但当然也有其他可行的方法。

首先我们将想要保存的对象添加到“Persist”组。我们既可以通过 GUI 也可以通过脚本完成此操作。让我们使用 GUI 来添加相关节点吧:

../../_images/groups.png

完成这个操作后,我们需要保存游戏时,就可以获取所有需要保存的对象,然后通过这个脚本让这些对象去保存数据:

var save_nodes = get_tree().get_nodes_in_group("Persist")
for node in save_nodes:
    # Now, we can call our save function on each node.