(jsonファイル)セーブデータを読み込まない事がある

実現したいこと

シーン開始時にきちんと指定のjsonファイルの中身を読み込んで動くようにしたい

前提

(Unity)
jsonファイルでデータの読み込みや書き込みを行っています
シーンが始まるとデータを読み込んでオブジェクトのアニメーションを変更させる
というスクリプトで動かしていますが
何故かデータをうまく読み込めない事があり詳細に話すと
違う値をセーブしてもずっと前のデータのままの挙動になる事があります結構頻繁です
jsonファイルをその都度チェックしましたが
セーブデータはjsonファイルに毎度反映されています
startの中でデータを読み込んでアニメーションを変えています
ビルド後のexeファイルを再起動してもセーブする前の違う数値を読み込んでしまいます
以下は使用してるjsonファイル(Dekki.json)の中身です
{"NowDekki":[0,0]}

###該当箇所(C#)
using UnityEngine;
using UnityEngine.UI;
using System.Collections.Generic;
public class SA1 : MonoBehaviour
{
public bool ng = false;
public Button button;
public MP mp;
public bool SAswitch = false;
public Animator animator;
public masterbutton mast;
public int numberMe;
public bool trick = false;
public Info info;
public int NeedMp;
public int instanceID;
public TextAsset dekkiJson; // JSONファイル

[System.Serializable] public class DekkiData { public List<int> NowDekki; } private void Start() { PlayerPrefs.DeleteAll(); instanceID = GetInstanceID(); mp = FindObjectOfType<MP>(); animator = GetComponent<Animator>(); if (!trick && dekkiJson != null) { string jsonText = dekkiJson.text; DekkiData dekkidata = JsonUtility.FromJson<DekkiData>(jsonText); if (dekkidata != null && dekkidata.NowDekki != null) { if (numberMe >= 0 && numberMe < dekkidata.NowDekki.Count) { Debug.Log("DekkiData NowDekki: " + string.Join(", ", dekkidata.NowDekki)); int monsternumber = dekkidata.NowDekki[numberMe]; animator.SetInteger("MonButton", monsternumber + 1); numberMe = monsternumber + 1; Debug.Log(monsternumber); } else { button.interactable = false; } } }
### 試したこと 一応PlayerPrefs.DeleteAll(); を入れてみましたが効果はありませんでした ### スクリプトの全体 一応のせます using UnityEngine; using UnityEngine.UI; using System.Collections.Generic; public class SA1 : MonoBehaviour { public bool ng = false; public Button button; public MP mp; public bool SAswitch = false; public Animator animator; public masterbutton mast; public int numberMe; public bool trick = false; public Info info; public int NeedMp; public int instanceID; public TextAsset dekkiJson; // JSONファイル [System.Serializable] public class DekkiData { public List<int> NowDekki; } private void Start() { PlayerPrefs.DeleteAll(); instanceID = GetInstanceID(); mp = FindObjectOfType<MP>(); animator = GetComponent<Animator>(); if (!trick && dekkiJson != null) { string jsonText = dekkiJson.text; DekkiData dekkidata = JsonUtility.FromJson<DekkiData>(jsonText); if (dekkidata != null && dekkidata.NowDekki != null) { if (numberMe >= 0 && numberMe < dekkidata.NowDekki.Count) { Debug.Log("DekkiData NowDekki: " + string.Join(", ", dekkidata.NowDekki)); int monsternumber = dekkidata.NowDekki[numberMe]; animator.SetInteger("MonButton", monsternumber + 1); numberMe = monsternumber + 1; Debug.Log(monsternumber); } else { button.interactable = false; } } } dekkiJson = null; if (!trick) { animator.SetBool("Buttonbool", false); animator.SetBool("Buttonbool", false); if (numberMe == 1) { //ゴースト NeedMp = 8; } else if (numberMe == 2) { //ゴーストソルジャー NeedMp = 12; } else if (numberMe == 3) { //ゴーストグール NeedMp = 35; } else if (numberMe == 4) { //ゴーストメタル NeedMp = 35; } else if (numberMe == 5) { //魔女のしもべ NeedMp = 35; } else if (numberMe == 6) { //かめ NeedMp = 15; } else if (numberMe == 7) { //かめメタル NeedMp = 45; } else if (numberMe == 8) { //かめグール NeedMp = 42; } else if (numberMe == 9) { //夏ぺんぎん NeedMp = 35; } else if (numberMe == 10) { //ぺんぎんソルジャー NeedMp = 40; } else if (numberMe == 11) { //スライム NeedMp = 11; } else if (numberMe == 12) { //スライムグール NeedMp = 40; } else if (numberMe == 13) { //装甲車 NeedMp = 60; } else if (numberMe == 14) { //タンク NeedMp = 55; } else if (numberMe == 15) { //食人植物 NeedMp = 41; } else if (numberMe == 16) { //くま NeedMp = 40; } else if (numberMe == 17) { //きんぐま NeedMp = 62; } else if (numberMe == 18) { //チャイナガール NeedMp = 55; } else if (numberMe == 19) { //チャイナグール NeedMp = 60; } else if (numberMe == 20) { //魔女 NeedMp = 41; } else if (numberMe == 21) { //魔女グール NeedMp = 62; } else if (numberMe == 22) { //ハンター NeedMp = 13; } else { NeedMp = 80000; } // NeedMpの設定などの処理をここに追加します } } private void Update() { if (ng) { animator.SetBool("NGbool", true); return; } if (!trick) { if (button == null) { return; } int a = mp.MPlook(); if (NeedMp <= a && !SAswitch) { animator.SetBool("Buttonbool", false); } else { animator.SetBool("Buttonbool", true); } } } public void buttonon() { animator = GetComponent<Animator>(); if (!SAswitch) { Debug.Log(numberMe); mast.nummath(numberMe, instanceID); tileon(); SAswitch = true; if (!trick) { info.InfoClass(numberMe); } } else { mast.nummath(0, 0); pumpbutton(); } } public void pumpbutton() { tileoff(); SAswitch = false; } public void tileon() { button.image.color = Color.grey; SAswitch = true; animator.SetBool("Buttonbool", true); } public void tileoff() { button.image.color = Color.white; SAswitch = false; animator.SetBool("Buttonbool", false); } public void endbutton(int a) { if (!trick && a == instanceID) { button.interactable = false; ng = true; } } }

コメントを投稿

0 コメント