前提
サバイバル形式のアクションゲームを作成しておりますが、主人公が敵にやられた際に生き残れた時間をハイスコアとしてリトライ時、ゲームの開始時に残るようにしておきたい
実現したいこと
ゲームオーバーになった際の秒数が保存されていてそれが今までよりも長い場合にはプレイ画面にベストスコアとして表示されていて欲しい(updateでなくても構いません)
発生している問題・エラーメッセージ
ハイスコアが常に1と表示されております
該当のソースコード
ublic class HighScore : MonoBehaviour { public Text scoreText; public Text highScoreText; //ハイスコアを表示するText private int highScore; //ハイスコア用変数 private string key = "HIGH SCORE"; //ハイスコアの保存先キー // Start is called before the first frame update void Start() { int Rscore = (int)ScoreGett.GetMinute(); scoreText.text = Rscore.ToString(); highScore = PlayerPrefs.GetInt(key, 0); //保存しておいたハイスコアをキーで呼び出し取得し保存されていなければ0になる if (Rscore > highScore) { highScore = Rscore; //ハイスコア更新 PlayerPrefs.SetInt(key, highScore); PlayerPrefs.Save(); //ハイスコアを保存 } highScoreText.text = "HighScore:" + highScore.ToString(); //ハイスコアを表示 } }
引用元としているPlayerPrefsのソースコード
public class ScoreGett : MonoBehaviour { public static float minute = 0; public static float seconds = 0; void Start() { minute = PlayerPrefs.GetFloat("MINUTE", 0); seconds = PlayerPrefs.GetFloat("SECOND", 0); } public static float GetMinute() { return minute; } public static float GetSeconds() { return seconds; } }
お手数ですがご教授いただけますと幸いです。
あなたの回答
tips
プレビュー