今回はハイスコアの実装と、アプリを終了しても記録を残す方法を同時進行で記述します。
UnityのPlayerPrefsという機能を使って、プロジェクト内に記録を保存して、アプリを終了しても記録が残るようにします。
#1. ハイスコアのテキストを配置
Unityの Hierarchy→Create→UI→Text で、Canvas内にハイスコアを表示するテキストを配置します。
位置と大きさは自分の好きな様に設定します。
#2.スクリプトを記述
宣言は以下の様にします。
今回はスコア機能が実装されている上での説明なので、あらかじめ自分で用意されているスコアの部分の記述は割愛します。
public Text highScoreText; //ハイスコアを表示するText
private int highScore; //ハイスコア用変数
private string key = "HIGH SCORE"; //ハイスコアの保存先キー
次にvoid startの部分に記述する部分です。
highScore = PlayerPrefs.GetInt(key, 0);
//保存しておいたハイスコアをキーで呼び出し取得し保存されていなければ0になる
highScoreText.text = "HighScore: " + highScore.ToString();
//ハイスコアを表示
最後にvoid updateの部分です。
//ハイスコアより現在スコアが高い時
if (score > highScore) {
highScore = score;
//ハイスコア更新
PlayerPrefs.SetInt(key, highScore);
//ハイスコアを保存
highScoreText.text = "HighScore: " + highScore.ToString();
//ハイスコアを表示
}
※この部分でのscoreは、各々で設定している名前によって違ってくるかと思います。
#3.ScriptにTextを貼り付ける
ScriptをObjectに貼り付け、Textを貼り付けたら完了です!!
ゲームを終了しても、ハイスコアが残ってるかと思われます!!
#4.ハイスコアを削除する方法
このままではハイスコアをリセットすることができないので、PlayerPrefs内に保存されているハイスコアをリセットしたい時に、次のコードを書けばリセットすることができます。
PlayerPrefs.DeleteAll();
これをvoid startに書いて、一度再生すると、ハイスコアがリセットされます。
以上、unityでハイスコアを実装する方法でした。