実現したこと
unityのTextデータのセーブロード機能について
プレイヤーが死亡した際にカウントされるTextを作りました。
また、MainシーンでEnemyに衝突した際に死亡回数をセーブし、Title画面でロードボタンをクリックした際に死亡データを取得しMainシーンに今まで死んだ回数を表示させたいのですがうまくいきません。
今できていること
Enemyに衝突した際に死亡回数がカウントされるだけです。
発生しているエラー、問題
Textの死亡回数がロード時に反応しない。
スクリプトを誰につけているか
MainシーンではplayerにPlayerControllerとCountScript
空のオブジェクトにSaveManagerです。
Titleシーンでは空のオブジェクトにSaveManager
空のオブジェクトにCountScriptです。
該当のソースコード
C#言語(スクリプトは4つあり、参照しています)
//1つ目 PlayerController public Text deathCountText;//死亡テキストの名前 private void OnTriggerStay(Collider col) { if (col.gameObject.tag == "Enemy") { StartCoroutine(CountDelaySave());//1秒 } } IEnumerator CountDelaySave() { yield return new WaitForSeconds(1f); __//SaveManagerスクリプトを参照 __ GameObject.Find("SaveManager").GetComponent<SaveManager>().SaveCount(); }
//2つ目 SaveManager private int count; public void SaveCount() { PlayerPrefs.SetInt("Deaths", count); GameObject.Find("CountManager").GetComponent<CountScript>().SetDeathCount(); } public void LoadCount() { count = PlayerPrefs.GetInt("Deaths", count); GameObject.Find("CountManager").GetComponent<CountScript>().SetDeathCount(); }
```
//3つ目 CountScript
public Text deathCountText;
private int count; SaveManager saveManager; private void Start() { saveManager = GameObject.Find("SaveManager").GetComponent<SaveManager>(); saveManager.LoadCount(); //saveManager.count = 0;★★★ SetDeathCount(); } private void OnTriggerStay(Collider col) { if (col.gameObject.tag == "Enemy") { saveManager.count += 1; SetDeathCount(); Invoke("SetSaveCount", 1f); } } void SetSaveCount() { SaveManager saveManager = GameObject.Find("SaveManager").GetComponent<SaveManager>(); saveManager.SaveCount(); } public void SetDeathCount() { deathCountText.text = "爆破回数: " +saveManager.count.ToString(); }
//4つ目 ToMain(ボタンを押したらTitleからMainへ行く)
public void OnLoadCliked()
{Debug.Log("データ獲得");
GameObject.Find("SaveManager").GetComponent<SaveManager>().LoadData();
Debug.Log("5秒待つ"); StartCoroutine(WaitTime()); } IEnumerator WaitTime() { yield return new WaitForSeconds(5f); SceneManager.LoadScene("Main"); }
**試してみたこと** たくさん試しすぎてよくわからない状況です。 3週間前に色々試していたのですが断念してこのサイトを見つけたので今回質問させていただきました。 ごちゃごちゃしていて申し訳ありませんが、よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー