unityでdictionaryのセーブの仕方が分からないためdictionarryをarrayに変換してセーブしようと思ったのですが、上手くいきませんでした。
僕はdictionaryのintだけをセーブ出来てロードできるか、dictionary全体をセーブ、ロードができるようにしたいです。
このコードでは
public int[] dicint = GManager.Getinstance().dict.Values.ToArray();
を足した時に、
The requested operation caused a stack overflow
というエラーメッセージが出ました。
dictionaryのセーブの仕方を教えていただきたいです。
c#
1using System; 2using System.Collections; 3using System.Collections.Generic; 4using UnityEngine; 5using UnityEngine.UI; 6using System.Linq; 7 8[System.Serializable] 9public class GManager 10{ 11 static GManager instance = null; 12 13 public static GManager Getinstance() 14 { 15 if(instance == null) 16 { 17 instance = new GManager(); 18 } 19 return instance; 20 } 21 22 private const string SAVEKEY = "PLAYER-SAVE-KEY"; 23 public int hpNum; 24 public int mpNum; 25 public int hpNum2; 26 public int mpNum2; 27 [SerializeField] 28 public int coin = 300; 29 [SerializeField] 30 public int sandohp; 31 32 33 public int[] dicint = GManager.Getinstance().dict.Values.ToArray(); 34 35 //hosiiti 36 [SerializeField] 37 public Dictionary<string, int> dict = new Dictionary<string, int>() 38 { 39 {"kaze",0}, 40 {"bomu",0}, 41 {"speeddown",0}, 42 {"mpkotei",0}, 43 {"mpzouka",0}, 44 {"mpkyushuu",0}, 45 {"hpkaifuku",0}, 46 {"hpzouka",0}, 47 }; 48 //hosiitiowari 49 50 51 52 public void Save() 53 { 54 PlayerPrefs.SetString(SAVEKEY, JsonUtility.ToJson(this)); 55 PlayerPrefs.Save(); 56 string playerJson = PlayerPrefs.GetString(SAVEKEY, JsonUtility.ToJson(new GManager())); 57 Debug.Log(playerJson); 58 } 59 public void Load() 60 { 61 string playerJson = PlayerPrefs.GetString(SAVEKEY, JsonUtility.ToJson(new GManager())); 62 instance = JsonUtility.FromJson<GManager>(playerJson); 63 } 64}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/26 15:03