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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM