Unity事例ノート

UNITY

ベストタイムを保持する

ゲームクリアすれば止まる、タイムアタックのしくみを作り、ベストタイムを表示させてみましょう。

PlayerPrefsでベストタイムの変数をデータ保存し、スタートのたびにテキストで表示します。

今回は、短い時間でクリアすることが、最高タイムとなるように作成します。

関連記事:
点数をテキスト表示
ハイスコアをつくる
ハイスコアをリセットする
タイムアタックできる「カウントアップタイマー」
ベストタイム(最短時間)の更新とリセット
タイマーによる成績で評価ランク

オブジェクトの準備

まずは必要なオブジェクトを準備しましょう。

平面、Cube、Sphereを作成。

それぞれに色を付けて、CubeとSphereは地上に出るように、座標を変えました。

カメラの位置も変更し、ゲームビューではこのように見えています。

Cubeにリジッドボディを追加します。

Sphereのトリガーにするにチェックを入れます。

続いて、テキストを2つ用意します。

TimerText、BestTimeTextという名前にしました。

TimerTextを中央下に、BestTimeTextを右上に配置しました。

シーンを再ロードしても最高タイムを保持する

ベストタイムが出たときに更新できるスクリプトを作りましょう。

CubeMove.csを作成し、Cubeに追加します。

テキストを扱うので、using UnityEngine.UI; を忘れずに書きましょう。

Cubeを選択し、それぞれのフィールドに、Textオブジェクトを入れましょう。

ゲームプレイして、少し時間をかけて、Sphereにぶつけます。

ベストタイムに表示されます。

もう一度プレイして、ベストタイムを下回る時間で、Sphereにぶつけましょう。

ベストタイムが更新されます。

再度、プレイしてみましょう。

シーンが再ロードされても、前回のベストタイムが保持され、ゲーム画面に表示されます。

関連記事:
点数をテキスト表示
ハイスコアをつくる
ハイスコアをリセットする
タイムアタックできる「カウントアップタイマー」
ベストタイム(最短時間)の更新とリセット
タイマーによる成績で評価ランク