📜  unity json 保存数组 - C# (1)

📅  最后修改于: 2023-12-03 15:20:52.133000             🧑  作者: Mango

Unity JSON 保存数组 - C#

在Unity中,我们通常使用JSON格式来进行数据的持久化操作。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于读写和解析,并且广泛应用于Web应用程序。

本文将介绍如何在Unity中使用JSON将数组保存到文件中,并在需要时将其读取回来。

保存数组到JSON文件中

我们可以使用JsonUtility类来将数组序列化为JSON格式字符串,并使用File类将其写入到文件中。下面是一个示例:

using UnityEngine;
using System.IO;

public class ArraySaver : MonoBehaviour
{
    public int[] intArray;

    public void SaveArray(string fileName)
    {
        string path = Application.persistentDataPath + "/" + fileName;
        string json = JsonUtility.ToJson(intArray);

        File.WriteAllText(path, json);
    }
}

在上面的示例中,我们定义了一个整数类型的数组intArray,并创建一个SaveArray方法来保存这个数组到一个指定的文件中。此处我们将文件保存在Application.persistentDataPath目录下,这是一个应用程序可以持久保存数据的地方。

我们使用JsonUtility.ToJson方法将数组序列化为一个JSON格式字符串,然后使用File.WriteAllText方法将字符串写入到文件中。

从JSON文件中读取数组

要将JSON文件中保存的数组读取回来,我们需要使用JsonUtility类的FromJson方法,并使用File类读取文件中的内容。下面是一个示例:

using UnityEngine;
using System.IO;

public class ArrayLoader : MonoBehaviour
{
    public string fileName;
    public int[] intArray;

    public void LoadArray()
    {
        string path = Application.persistentDataPath + "/" + fileName;

        if (File.Exists(path))
        {
            string json = File.ReadAllText(path);
            intArray = JsonUtility.FromJson<int[]>(json);
        }
    }
}

在上面的示例中,我们定义了一个字符串类型的fileName来指定要读取的文件名,并创建一个LoadArray方法来读取这个文件并将其转换为一个整数类型的数组。如果文件不存在,则不执行任何操作。

我们使用File.ReadAllText方法读取文件中的内容,并使用JsonUtility.FromJson方法将JSON格式的数据反序列化为一个整数类型的数组。

结论

这是一个简单的示例,演示了如何使用Unity中的JsonUtility和File类将数组保存到JSON文件中,并将其读取回来。我们希望这个示例能够为你构建更复杂的数据持久化操作提供基础。

完整的示例代码可以在Github上找到:https://github.com/UnityTechnologies/UniteEurope2019_Demo_Code/blob/master/Assets/Scripts/ArraySaver.cs