📅  最后修改于: 2023-12-03 14:48:12.382000             🧑  作者: Mango
在 Unity 游戏开发中,我们经常需要将程序中的数据以 JSON 的格式保存下来,以便之后可以重新加载这些数据。本篇教程将会为大家讲解如何在 Unity 中将列表数据保存为 JSON 格式,并提供相应的代码示例。
在将 Unity 中的数据保存为 JSON 格式时,我们需要使用到序列化和反序列化的方法。序列化是将对象转换为字符串格式,而反序列化是将字符串格式转换为对象类型。在 Unity 中,我们可以使用 JsonUtility 类来进行序列化和反序列化操作。
// 序列化为 JSON 格式
string json = JsonUtility.ToJson(obj);
// 反序列化为对象
Object obj = JsonUtility.FromJson<Object>(json);
我们假设我们有以下数据结构:
[System.Serializable]
public class Item
{
public string name;
public int count;
}
[System.Serializable]
public class Inventory
{
public List<Item> itemList;
}
要将 Inventory 类中的 itemList 保存为 JSON 格式,我们可以使用以下方法:
Inventory inventory = new Inventory();
inventory.itemList = new List<Item>();
// 将数据添加到列表中
Item item1 = new Item();
item1.name = "apple";
item1.count = 10;
inventory.itemList.Add(item1);
Item item2 = new Item();
item2.name = "banana";
item2.count = 8;
inventory.itemList.Add(item2);
// 将列表保存为 JSON 格式
string json = JsonUtility.ToJson(inventory);
最终得到的 json 字符串会长这样:
{
"itemList": [
{
"name": "apple",
"count": 10
},
{
"name": "banana",
"count": 8
}
]
}
同样地,我们可以将 JSON 格式的字符串转换为列表类型:
Inventory inventory = JsonUtility.FromJson<Inventory>(json);
从上面的代码中可以看到,我们先将 json 字符串反序列化为 Inventory 类型,在 Inventory 对象中我们就可以获取到 itemList 列表,然后就可以从列表中得到相应的数据了。
在本篇教程中,我们学习了如何将列表数据保存为 JSON 格式,并将 JSON 格式的字符串转换为列表类型。这对于 Unity 游戏开发者来说是非常有用的技能,因为在游戏开发中我们需要保存和加载大量的游戏数据。希望这篇教程对大家有所帮助。