###前提・実現したいこと
質問:teratail.com/questions/209559
の続きになるのですが、星を条件ごとに表示することはできましたが
その状態を保存する方法が思いつかなかった為質問することにしました。
星の表示条件
1.コインを0枚以上2枚以下でゴールすると左側の★のみ点灯 (★☆☆) ※ゴールすると必ず点灯
2.コインをすべて(3枚)取得してゴールすると左側と真ん中の★のみ点灯(★★☆)
3.コインを0枚でゴールすると左側と右側の★のみ点灯 (★☆★)
また1回目では★は2個ですべてそろうことはありません。
2回目で★がすべてそろう形になります。
###該当のソースコード
//コルーチン処理(コインの数に合わせて0.5fごとに☆を表示) IEnumerator Evaluation() { //まず今回のプレイで獲得した☆の数を求める if ((CoinTotal >= 0)&&(CoinTotal <= 2)) -------------(CoinTotal >= 0)だけでもいい?------------ { //コインが1から2枚 Hoshi = 1; } else if(CoinTotal == 3) { //コインが3枚以上 Hoshi = 2; } if(CoinTotal == 0) { Hoshi = 3; } ここでHoshiが3になるため2回目クリアすると条件に関係なくすべての星が点灯してしまう? //以前のプレイで獲得した☆の数を取得する var savedHosi = PlayerPrefs.GetInt("SAVESTAR" + StageNo, 0); //今回の☆とそれ以前の☆のうち大きい方を選ぶ Hoshi = Mathf.Max(Hoshi, savedHosi); //☆を表示する for (var i = 0; i < Hoshi; i++) { ------------前回の質問で改良した場所------------------------ yield return new WaitForSeconds(0.7f); StarImage[0].SetActive(true); StarImage[1].SetActive(CoinTotal == 3); StarImage[2].SetActive(CoinTotal == 0); ----------------------------------------------------------- } //☆の数を保存する PlayerPrefs.SetInt("SAVESTAR" + StageNo, Hoshi); } ``` ###補足情報(言語/FW/ツール等のバージョンなど) Unity 2018.3.11f1 言語:C#
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/03 19:23 編集