1、识别需要保存的数据首先,我们应该确定在游戏会话中要保留什么对象,以及我们要从这些对象中保存什么信息。我们将使用组来标记出要保存的对象,当然也有其他可行的方法。首先对需要保存的对象,手动设置归属的组。
2、完成此操作后, 在我们需要保存游戏时,我们可以获取所有需要保存数据的对象。代码如下(Gdscript版)
3、序列化数据序列化使将数据从磁盘中读取或存储到磁盘,变得更加容易。 在本示例中,我们假设Persist组的每个成员都是一个实例节点,因此有一个路径。同时每个节点都有一个保存函数。保存函数示例代码如下:
4、保存数据我们需要新建一个文件,然后将相关数据写入其中。现在我们有办法调用相关的组并获取各个对象的相关数据,再用 to_json()函数 将数据转换为一个容易存储的字符串,最后将它们存储在一个文件中。 这样做可以确保每一行都是自包含的对象,因此我们也可以轻松地将数据从文件中提取出来。保存函数示例代码如下:
5、读取数据游戏保存好了! 加载也很简单。 为此,我们将读取保存文件的每一行,并且使用parse_json() 函数将其读到一个字典中,然后遍历字典以读取我们需要的值。 但是我们首先需要创建对象,然后我们可以使用文件名和父值来实现它。 读取函数示例代码如下:
6、大功完成现在我们可以保存和加载位于场景树中的任意数量的对象了! 每个对象可以根据需要保存的内容存储不同的数据。