C#
1namespace WBMap
2{
3 [System.Serializable]
4 public class UserData
5 {
6 public string userName="DefaultName";
7 public int userRank;
8 }
9}
C#
1using UnityEngine;
2using System.IO;
3
4namespace WBMap
5{
6 public class SaveSystem
7 {
8 #region Singleton
9 private static SaveSystem instance = new SaveSystem();
10 public static SaveSystem Instance => instance;
11 #endregion
12 private SaveSystem() { Load(); }
13
14 public string Path => Application.dataPath + "/data.json";
15 public UserData UserData { get;private set; }
16
17 public void Save()
18 {
19 string jsonData = JsonUtility.ToJson(UserData);
20 StreamWriter writer = new StreamWriter(Path, false);
21 writer.WriteLine(jsonData);
22 writer.Flush();
23 writer.Close();
24 }
25
26 public void Load()
27 {
28 if(!File.Exists(Path))
29 {
30 Debug.Log("初回起動");
31 UserData = new UserData();
32 Save();
33 return;
34 }
35
36 StreamReader render = new StreamReader(Path);
37 string jsonData = render.ReadToEnd();
38 UserData = JsonUtility.FromJson<UserData>(jsonData);
39 render.Close();
40 }
41 }
42}
C#
1using UnityEngine;
2
3namespace WBMap
4{
5 public class SaveTest : MonoBehaviour
6 {
7 public void SaveTesting()
8 {
9 SaveSystem.Instance.UserData.userName = "TestPlayer";
10 SaveSystem.Instance.UserData.userRank = 2;
11 SaveSystem.Instance.Save();
12 Debug.Log("セーブしました");
13 }
14 public void Loadtesting()
15 {
16 SaveSystem.Instance.Load();
17 Debug.Log("ロードしました");
18 }
19 private void Update()
20 {
21 if(Input.GetKeyDown(KeyCode.C))
22 {
23 Debug.Log("ランクの表示");
24 Debug.Log("User R=" + SaveSystem.Instance.UserData.userRank);
25 }
26 }
27
28 }
29}
SaveSystem セーブ、ロード関数本体
UserData プレイヤーのパラメータを集めたもの
SaveTest ボタンで呼び出す
自分の方でテスト用に作ってみました。参考にしたのは、Youtubeの白黒_unityさんです。