前提・実現したいこと
unityのwebGL版にてゲームのセーブデータをjsonファイルとしてローカルに保存させたいです。
現状unity内のセーブデータはjson形式でstring型の変数に保管し、プラグインを通してjavascriptまで送れるようになっています。
また、その変数をjsonファイルに書き出すことは成功しています。
発生している問題
string変数をjsonに書き換えるときに文字化け?が起きる(数字の羅列になる)。
またPointer_stringifyに通してからjsonに書き換えてもエスケープ文字が残ってしまう。
該当のソースコード
前者のコード
javascript
1getJsonData : function(str){ 2 window.alert(Pointer_stringify(str));//ここでは問題ないです 3 var jsonData = JSON.stringify(str); 4 window.alert(jsonData);//ここで文字列が数字の羅列になる 5 6 //blob = new Blob([Pointer_stringify(str)],{'application/json'}); 7 //window.alert(blob.size); 8 },
後者のコード
javascript
1getJsonData : function(str){ 2 window.alert(Pointer_stringify(str));//ここでは問題ないです 3 var jsonData = JSON.stringify(Pointer_stringify(str)); 4 window.alert(jsonData);//ここでエスケープ文字が見える状態の文字列になる 5 6 //blob = new Blob([Pointer_stringify(str)],{'application/json'}); 7 //window.alert(blob.size); 8 },
unityのゲームマネージャー内のセーブ用メソッド
c#
1 2 public void save() 3 { 4 var furnitures = new List<furniture>(); 5 for (int i = 0; i < ObjList.Count; i++) 6 { 7 furnitures.Add(new furniture(ObjList[i].name, ObjList[i].transform.position, ObjList[i].transform.rotation)); 8 } 9 SaveData = JsonUtility.ToJson(new Serialization<furniture>(furnitures)); 10 11 getJsonData(SaveData); 12 Debug.Log(SaveData); 13 14 Debug.Log("セーブが完了しました"); 15 }
試したこと
replaceをおこなってバックスラッシュを取り除こうと考えましたがエラーをはいたので断念。
補足情報(FW/ツールのバージョンなど)
unity2018.4.23f1

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/11 02:38
2020/06/11 03:02 編集
2020/06/11 03:39
2020/06/11 03:42
2020/06/11 04:05