Unity 保存數據到本地json文件

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using LitJson;
using System.Text;
using System.IO;
using UnityEngine.UI;

public class Model
{
    public string key;
    public string value;
}


public class BtnNameJson : MonoBehaviour
{
    public static BtnNameJson Instance;

    public static string strPath;

    public List<Model> listModel = new List<Model>();

    public List<GameObject> listBtns = new List<GameObject>();
    private void Awake()
    {
        Instance = this;
        strPath = Application.dataPath + "/BtnName.json";

    }

    void Start()
    {
        Invoke("Load", 1);
    }
    public void Load()
    {
        StreamReader streamReader = new StreamReader(strPath);
        string str = streamReader.ReadToEnd();
        JsonData jsdata = JsonMapper.ToObject(str);

        listModel.Clear();
        for (int i = 0; i < jsdata.Count; i++)
        {
            Model m = new Model { key = jsdata[i]["key"].ToString(), value = jsdata[i]["value"].ToString() };
            listModel.Add(m);
        }

        for (int i = 0; i < listBtns.Count; i++)
        {
            foreach (var item in listModel)
            {
                if (item.key == listBtns[i].name)
                {
                    listBtns[i].transform.GetComponentInChildren<InputField>().text = item.value;
                }
            }
        }

    }

    public void Save()
    {
        listModel.Clear();
        for (int i = 0; i < listBtns.Count; i++)
        {
            Model m = new Model() { key = listBtns[i].name, value = listBtns[i].transform.GetComponentInChildren<InputField>().text };
            listModel.Add(m);
        }

        //找到當前路徑
        FileInfo file = new FileInfo(strPath);
        //判斷有沒有文件,有則打開文件,,沒有創(chuàng)建后打開文件
        StreamWriter sw = file.CreateText();
        //ToJson接口將你的列表類傳進去,,并自動轉換為string類型
        string json = JsonMapper.ToJson(listModel);
        //將轉換好的字符串存進文件,
        sw.WriteLine(json);
        //注意釋放資源
        sw.Close();
        sw.Dispose();

    }

}

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class BtnChangeText : MonoBehaviour
{
    InputField inp;
    void Start()
    {
        BtnNameJson.Instance.listBtns.Add(gameObject);

        inp = GetComponentInChildren<InputField>();
        inp.onEndEdit.AddListener((string value) =>
        {
            BtnNameJson.Instance.Save();
        });
    }

   
}

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容