1效果展示

2代码展示(备注很详细)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System.IO;//将类序列化到文件中,同时序列化到编辑器中
[System.Serializable]
public class PlayerCoin{public int count;public string name;public bool isWinner;
}//存储一系列类数据,必须创建一个链表,链表必须存在在类中,才能被序列化
public class PlayerCoinList
{public List<PlayerCoin> playerCoinList = new List<PlayerCoin>();
}public class DataSaveManager : MonoBehaviour
{public PlayerCoinList list = new PlayerCoinList();PlayerCoin knight;      //保存骑士PlayerCoin wizzard;      //保存巫师public Text knightCoin;     //骑士的金币数量的显示文字public Text wizzardCoin;     //巫师的金币数量的显示文字// Start is called before the first frame updatevoid Start(){//创建json数据,只需要创建一次就行// GenerateData();//数据的读取LoadDate();}// Update is called once per framevoid Update(){}#region 生成实例并赋初值void GenerateData(){knight = new PlayerCoin();knight.count = 0;knight.name = "Knight";knight.isWinner = false;wizzard = new PlayerCoin();wizzard.count = 0;wizzard.name = "Wizzard";wizzard.isWinner = false;list.playerCoinList.Add(knight);list.playerCoinList.Add(wizzard);}#endregion#region 金币增加按钮事件//按钮事件:点击按钮时金币数量的增加public void OnClickCoin(string _player){if (_player.Equals("Knight")){knight.count += 1;knightCoin.text = knight.count.ToString();}else if (_player.Equals("Wizzard")){wizzard.count += 1;wizzardCoin.text = wizzard.count.ToString();}}#endregion#region 数据存储void SaveData(){//将list转化成一个json文件string json = JsonUtility.ToJson(list,true);//设置保存的路径string filePath = Application.streamingAssetsPath + "/playCoinList.json";//文件的写入using(StreamWriter sw = new StreamWriter(filePath)){sw.WriteLine(json);sw.Close();sw.Dispose();}}#endregion#region 保存按钮事件public void OnClickQuit(){//数据的存储SaveData();//退出游戏UnityEditor.EditorApplication.isPlaying = false;       //编辑器下退出游戏Application.Quit();}#endregion#region 数据的读取void LoadDate(){string json;string filePath = Application.streamingAssetsPath + "/playCoinList.json";//检测json文件是否存在if (File.Exists(filePath)){//json文件存在,直接进行数据读取using (StreamReader sr = new StreamReader(filePath)){json = sr.ReadToEnd();sr.Close();}//将json文件转化为内存中的一个变量list = JsonUtility.FromJson<PlayerCoinList>(json);//将读取的数据赋值knight = list.playerCoinList[0];wizzard = list.playerCoinList[1];//更新文本显示knightCoin.text = knight.count.ToString();wizzardCoin.text = wizzard.count.ToString();}else{//json文件不存在,先创建,再进行读取GenerateData();}}#endregion}

3Unity界面

脚本挂载在manager这个空物体上,对应的按钮添加对应的事件(注意:在金币增加按钮事件的添加时:输入的string的字符串必须与代码中一致)

4程序包链接

链接:https://pan.baidu.com/s/1a9x6Jmbh8o9L1Q54tqED6Q 
提取码:jl98

(ps:在哔哩哔哩找了一个视频学习的,视频链接也放这了:【UNITY教程】第1集 使用JSON存储数据_哔哩哔哩_bilibili)

学习记录:unity的json存储相关推荐

  1. Java学习记录 Java与JSON

    什么是JSON? JSON英文全称是 JavaScript Object Notation (JS对象简谱). JSON是一种使用了JS对象的书写语法的格式.[引用1] 它基于 ECMAScript ...

  2. 学习记录439@MySQL json 数据相关操作

    问题引出 工作中,有个数据存储在mysql中是json字符串的形式,要修复数据,就需要操作这个json,笨办法是复制出来查找替换,简直是无奈,然后查询资料发现可以有函数直接操作json,意料之中. M ...

  3. TM4C123G开发板学习记录(八)存储和安全管理(上)

    转载原博客:https://blog.csdn.net/zhb_sh/article/details/104522529

  4. Unity游戏优化[第二版]学习记录6

    以下内容是根据Unity 2020.1.01f版本进行编写的 Unity游戏优化[第二版]学习记录6 第6章 动态图形 一.管线渲染 1.GPU前端 2.GPU后端 3.光照和阴影 4.多线程渲染 5 ...

  5. Unity游戏优化(第2版)学习记录8

    Unity游戏优化[第二版]学习记录8 第8章 掌握内存管理 一.Mono平台 1.垃圾回收 2.内存碎片 3.运行时的垃圾回收 4.多线程的垃圾回收 二.代码编译 三.分析内存 1.分析内存消耗 2 ...

  6. 【C语言进阶深度学习记录】三十五 程序中的堆、栈以及静态存储区(数据区)

    学习交流加 个人qq: 1126137994 个人微信: liu1126137994 学习交流资源分享qq群: 962535112 在我之前学习底层的知识的时候,也写过相关的内容.可以对比的学习:[软 ...

  7. MySQL学习记录 (五) ----- 存储函数、存储过程和触发器

    相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...

  8. Unity学习记录——模型与动画

    Unity学习记录--模型与动画 前言 ​ 本文是中山大学软件工程学院2020级3d游戏编程与设计的作业7 编程题:智能巡逻兵 1.学习参考 ​ 除去老师在课堂上讲的内容,本次作业代码与操作主要参考了 ...

  9. unity学习记录第九章-过关和UI

    unity学习记录第九章 要点 胜利过关 UI文本 笔记 1.创建一个脚本控制开门动画 2.在GameMannager里设置一个类类型的变量,用来传递方法 3.当列表中的收集物为0时开门通关 4.使用 ...

最新文章

  1. 《UX最佳实践:提高用户体验影响力的艺术 》一3.6 总结
  2. mycat mysql 主从切换_Mycat读写分离与主从切换
  3. ORACLE穿透防火墙问题
  4. PAT—— 害死人不偿命的(3n+1)猜想 (1001)
  5. windows linux 融合,Windows和Linux的设备驱动框架的对比融合研究
  6. 计算机无法用u盘重装系统,没有u盘电脑开不了机重装系统的方法步骤详细教程 - 系统家园...
  7. P4655-[CEOI2017]Building Bridges【斜率优化dp,CDQ分治】
  8. oracle服务说明
  9. Python 并行分布式框架 Celery
  10. python bokeh_浅谈python可视化包Bokeh
  11. fluentmigrator连接mysql_如何利用FluentMigrator实现数据库迁移
  12. ppt护理文书流程图_降低护理文件书写不完整率.ppt
  13. 教你如何批量下载QQ相册或是手机相册里原照片
  14. echarts横向柱状图
  15. iOS UITextField实时监听获取输入内容,中文状态去除预输入拼音
  16. 老毛桃 固态硬盘 系统迁移
  17. 面向对象开发期末复习概述(二)
  18. 计算机技术在企业管理中的应用浅论,浅谈计算机技术在现代企业管理中的应用...
  19. Dubbo源码分析(三) -- Dubbo的服务发现源码深入解析4万字长文
  20. 在学习计算机编程不写代码_使用代码创建:通过制作游戏来学习和教授计算机编程

热门文章

  1. 【实战案例】血红细胞目标检测项目
  2. python获取word页数_python,_如何在 Linux 上使用 Python 读取 word 文件信息(如页数)?,python - phpStudy...
  3. 使用POI删除Excel中的行(亲自实践)
  4. java实现加密解密抽象_DES加密解密-java实现
  5. 搜题接口创建 对接百万题库接口
  6. 拯救手残党!谷歌黑科技 AutoDraw 用人工智能帮你画画!
  7. Zookeeper基础知识(一)
  8. 使用python计算某年七月有四个周五,四个周二,七月一周几?
  9. android客服功能介绍,Android 客服工作台 SDK
  10. 这家消金公司增资至29亿(起底中国31家消金公司)