unity 保存游戏数据和载入游戏数据
原视频地址:Unity教程:如何存储和加载游戏(ScriptableObject)_哔哩哔哩_bilibili
将代码挂在到任意空物体上,例如叫SaveGameManager
需要两个按钮,分别添加点击事件,方法在下方代码中
以下方法是保存背包里的数据,可以参考做出,保存人物个人信息数据,如金币数等
1:保存游戏
2:载入游戏
1 using System.Collections; 2 using System.Collections.Generic; 3 using UnityEngine; 4 using System.IO;//系统操作库 5 using System.Runtime.Serialization.Formatters.Binary;//调用二进制库 6 7 public class SaveDataManager : MonoBehaviour { 8 [Header("我的背包")] 9 public Bag mybag; 10 11 /// <summary> 12 /// 保存游戏 13 /// </summary> 14 public void SaveGame() { 15 16 print("点击了保存游戏按钮"); 17 18 //输出保存位置 19 Debug.Log(Application.persistentDataPath); 20 21 //判断如果不存在保存文件数据 22 if (!Directory.Exists(Application.persistentDataPath + "/game_SaveData")) { 23 24 //创建游戏存储目录文件 25 Directory.CreateDirectory(Application.persistentDataPath + "game_SaveData"); 26 } 27 28 //实例化二进制转化工具 29 BinaryFormatter f = new BinaryFormatter(); 30 31 //创建保存文件位置 32 FileStream file = File.Create(Application.persistentDataPath + "game_SaveData/bag.txt"); 33 34 //将背包转换成json格式 35 var json = JsonUtility.ToJson(mybag); 36 37 //序列化文件,转成二进制 38 f.Serialize(file, json); 39 40 file.Close();//关闭文件句柄 41 42 print("数据以保存到:" + Application.persistentDataPath); 43 } 44 45 /// <summary> 46 /// 加载游戏 47 /// </summary> 48 public void LoadGame() { 49 50 print("点击了保存游戏按按钮"); 51 52 //实例化二进制转化类 53 BinaryFormatter bf = new BinaryFormatter(); 54 55 //如果游戏保存目录存在 56 if (File.Exists(Application.persistentDataPath + "game_SaveData/bag.txt")) { 57 58 //打开文件(路径,模式) 59 FileStream file = File.Open(Application.persistentDataPath + "game_SaveData/bag.txt",FileMode.Open); 60 61 //反序列化json(数据,位置) 62 JsonUtility.FromJsonOverwrite((string)bf.Deserialize(file), mybag); 63 64 //关闭文件句柄 65 file.Close(); 66 } 67 print("完成了保存数据操作"); 68 } 69 }
时间若流水,恍惚间逝去
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?