Unity 中存储数据到JSON本地文件
Posted 陈言必行
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity 中存储数据到JSON本地文件相关的知识,希望对你有一定的参考价值。
使用列表的方式存储JSON文件到本地,,虽然可以实现,但是读取的时候总出现各种问题,也许是个人水平有限,,个人还是感觉用Dictionary这种键值对的方式存储,更新读取都很方便,推荐查看:点击链接,,
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using LitJson;
using System.IO;
public class Person
public string Name get; set;
public double HP get; set;
public int Level get; set;
public double Exp get; set;
public int Attak get; set;
public class PersonList
public List<Person> list = new List<Person>();
public class Classtext : MonoBehaviour
public PersonList personList = null;
// Use this for initialization
void Start ()
Person person = new Person();
person.Name = "Czhenya";
person.HP = 100;
person.Level = 30;
person.Exp = 3333.33;
person.Attak = 50;
string json1 = JsonMapper.ToJson(person);
Debug.Log(json1.ToString());
Save(person);
/// <summary>
/// 保存JSON数据到本地的方法
/// </summary>
/// <param name="player">要保存的对象</param>
public void Save(Person player)
string filePath = Application.dataPath + @"/JsonPerson.json";
// Debug.Log(Application.dataPath + @"/JsonPerson.json");
personList = new PersonList();
if (!File.Exists(filePath))
personList.list.Add(player);
else
//若没有信息则新建,有则 更新,,,
bool bFind = false;
//遍历列表
for (int i = 0; i < personList.list.Count; i++)
Person savePlayer = personList.list[i];
if (player.Name == savePlayer.Name)
savePlayer.Level = player.Level;
savePlayer.HP = player.Level;
savePlayer.Exp = player.Exp;
savePlayer.Attak = savePlayer.Attak;
bFind = true;
break;
if (!bFind)
personList.list.Add(player);
//找到当前路径
FileInfo file = new FileInfo(filePath);
//判断有没有文件,有则打开文件,,没有创建后打开文件
StreamWriter sw = file.CreateText();
//ToJson接口将你的列表类传进去,,并自动转换为string类型
string json = JsonMapper.ToJson(personList.list);
//将转换好的字符串存进文件,
sw.WriteLine(json);
sw.Close();
sw.Dispose();
下面是运行后,新创建出来的JsonPerson.json文件的内容,,,
["Name":"Czhenya","HP":100.0,"Level":30,"Exp":3333.33,"Attak":50]
改进后的方法链接:存储和读出都可以实现了!!!推荐查看,,,http://blog.csdn.net/Czhenya/article/details/78057062
以上是关于Unity 中存储数据到JSON本地文件的主要内容,如果未能解决你的问题,请参考以下文章