📅  最后修改于: 2023-12-03 15:20:52.133000             🧑  作者: Mango
在Unity中,我们通常使用JSON格式来进行数据的持久化操作。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于读写和解析,并且广泛应用于Web应用程序。
本文将介绍如何在Unity中使用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文件中保存的数组读取回来,我们需要使用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