コード ```Unityのゲームプログラムについて質問です。 UnityではじめるC# という本でサンプルゲームをつくっております。 PlayerPrefsのプログラムがうまく動作しません。 <現状> ゲームステージが9個あり、4ステージクリアー後に5ステージに進めるはずが 5ステージに進めません。 1ステージクリアー後2ステージへすすめることができ、2ステージクリアーすると3ステージへ ゲームセレクトができるプログラムですが4ステージクリアーしても5へすすめません。 エラーはでていません。どこが悪いかわかりませんので教えてください。よろしくお願いします。 <やりたいこと> クリアーしたら次のゲームへすすめるようにしたいです。 1⃣ゲームプログラムと2⃣ゲームセレクトプログラムを添付します。 よろしくお願いします。 1⃣ゲームプログラム ```using UnityEngine; using System.Collections; using UnityEngine.SceneManagement; public class GameManager : MonoBehaviour { public int StageNo; //ステージナンバー public bool isBallMoving; //ボール移動中か否か public GameObject ballPrefab; //ボールプレハブ public GameObject ball; //ボールオブジェクト public GameObject goButton; //ボタン:ゲーム開始 public GameObject retryButton; //ボタン:リトライ public GameObject clearText; //テキスト:クリア public AudioClip clearSE; //効果音:クリア private AudioSource audioSource;//オーディオソース // Use this for initialization void Start () { retryButton.SetActive (false); //リトライボタンを非表示 isBallMoving = false; //ボールは「移動中ではない」 // オーディオソースを取得 audioSource = gameObject.GetComponent<AudioSource> (); } // Update is called once per frame void Update () { } //GOボタンを押した public void PushGoButton () { //ボールの重力を有効化 Rigidbody2D rd = ball.GetComponent<Rigidbody2D>(); rd.isKinematic = false; retryButton.SetActive (true); //リトライボタンを表示 goButton.SetActive (false); //GOボタンを非表示 isBallMoving = true; //ボールは「移動中」 } //リトライボタンを押した public void PushRetryButton () { Destroy (ball); //ボールオブジェクトを削除 //プレハブより新しいボールオブジェクトを作成 ball = (GameObject)Instantiate (ballPrefab); retryButton.SetActive (false); //リトライボタンを非表示 goButton.SetActive (true); //GOボタンを表示 isBallMoving = false; //ボールは「移動中ではない」 } //バックボタンを押した public void PushBackButton () { GobackStageSelect (); } //ステージクリア処理 public void StageClear () { audioSource.PlayOneShot (clearSE); //クリア音再生 //セーブデータ更新 if (PlayerPrefs.GetInt ("CLEAR", 0) < StageNo) { //セーブされているステージNoより今のステージNoが大きければ PlayerPrefs.SetInt ("CLEAR", StageNo); //ステージナンバーを記録 } clearText.SetActive (true); //クリア表示 retryButton.SetActive (false); //リトライボタン非表示 //3秒後に自動的にステージ選択画面へ Invoke ("GobackStageSelect", 3.0f); } //移動処理 void GobackStageSelect () { SceneManager.LoadScene ("StageSelectScene"); } } ```ここに言語を入力 コード ```using UnityEngine; using UnityEngine.UI; using System.Collections; using UnityEngine.SceneManagement; public class StageSelectManager : MonoBehaviour { public GameObject[] stageButtons; //ステージ選択ボタン配列 // Use this for initialization void Start () { //どのステージまでクリアしているのかをロード(セーブ前なら「0」) int clearStageNo = PlayerPrefs.GetInt ("CLEAR", 0); //ステージボタンを有効化 for (int i = 0; i <= stageButtons.GetUpperBound (0); i++) { bool b; if (clearStageNo < i) { b = false; //前ステージをクリアしていなければ無効 } else { b = true; //前ステージをクリアしていれば有効 } //ボタンの有効/無効を設定 stageButtons [i].GetComponent<Button> ().interactable = b; } } // Update is called once per frame void Update () { } //ステージ選択ボタンを押した public void PushStageSelectButton (int stageNo) { //ゲームシーンへ SceneManager.LoadScene ("PuzzleScene" + stageNo); } }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。