Unityで簡単なカウントダウンタイマーを作る

今回はUnityで残り何秒みたいなタイマー処理を実装してみたいと思います。
制限時間は色んな場面で使えると思います。是非使ってみて下さい。

ちなみにこの処理を使って作ったゲームはこちらです。

以下が大まかな流れです。

非常に単純ですので是非試してみて下さい。
今回もUnityを起動させ新しい2Dプロジェクトを作成します。
画面サイズは960*540にしています。
では早速作業していきましょう。

タイマーを表示するUIの作成

まずUnityEditorにTextを設置します。
TimerTextとしましょう。
UnityEditorにTextを設置
TimerTextをつくったらCanvasの設定とTimerTextの設定をしていきます。
このあたりはこうじゃなきゃいけないというのは無いと思います。
Canvasの設定とTimerTextの設定

タイマー用ゲームオブジェクトとスクリプト作成

タイマー用ゲームオブジェクトの準備

Hierarchy上にタイマー用のゲームオブジェクトを作成しましょう。
今回はTimerObjとしました。
TimerObj作成

タイマー処理用スクリプト作成

続いてタイマー処理を行うc#スクリプトを作成します。
シンプルにTimerにしました。
それでは初期の設定用にコードを書いていきます。

こんな感じで変数等を用意しました。
こうすることでUnityEditorのInspector上から制限時間の設定やtimerTextオブジェクトをアタッチすることができます。
timerTextオブジェクトをアタッチ
試しに制限時間を100秒にしてみました。

最後にUpdate関数内でタイマーの処理を書いていきます。
このようなコードになりました。

処理の内容はシンプルで下記のような感じです

  1. Time.deltaTimeで前フレームから現在のフレームまでの経過時間をtime変数に加算していく
  2. 先に設定した制限時間から経過時間を引いて残り時間を計算する
  3. timerTextの文字を残り時間に書き換える

このような流れになります。

remaining.ToString(“D3”)について

ちなみに
remaining.ToString(“D3”)
と書くことで残り時間は三桁の0埋めの文字になります。

それでは起動させてみましょう。
カウントダウンタイマー起動チェック

このような感じでカウントダウンが始まりました。
このままですと放っておけば残り時間はマイナスに突入しますが、使う用途によってゲームオーバーにしたり、タイマーを戻したりと応用出来るかと思います。

すごくシンプルなタイマーの実装でした。

関連記事

最後までご覧頂いてありがとうございました。