制限時間を表示!Unityでタイマーを扱う方法【初心者向け】
初心者向けにUnityでタイマーを設定する方法を解説しています。制限時間や経過時間などを表示したい時に役立つ知識です。実際にプログラムを書きながらタイマーの使い方を紹介しているので、ゲーム開発をしたい方はぜひご覧ください。
TechAcademyマガジンは受講者数No.1のオンラインプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。
ゲームを作成するにあたってタイマー機能が必要になってくる場面があると思います。
タイマーと聞くと難しそうと思うかもしれませんが、Unityでは簡単に時間管理をするためのクラスが用意されています。それでは実際にタイマーを作成していきましょう。
なお、本記事はTechAcademyのUnity入門オンライン講座の内容をもとにしています。

今回はUnityのゲーム画面上にタイマーを表示させてみよう。

田島メンター!!タイマーはどうやって設置するんですか〜?

手順としてはまずテキストを表示させるオブジェクトを作成し、それにスクリプトを適用させる形になるよ。実際にやってみよう。

はい!
タイマーを扱う主な方法
1. Timeクラス
タイマーを作る際に一番よく使われる方法です。
書き方によって様々なタイマーを実装することが可能です。数行でタイマーを実装することができるので初心者の方はまずこれを覚えると良いでしょう。
2. コルーチンを使用する
コルーチンと呼ばれるプログラミングを使用します。コルーチンの詳細は省略しますが、以下のように書くことによって何秒か後に実行といった、時間管理を簡単にすることができます。
yield return new WaitForSeconds (1.0f); //1秒後待って実行
他にも方法はありますが主に使用するのはこの二つです。
実際にタイマーを作ってみる
今回は「Timeクラス」を使用して、ゲームが開始してからの時間を計るストップウォッチのようなタイマーを作成していきたいと思います。
下の画像のように時間を表示するテキストを左上に作成してください。レースゲームなどで良くある構図ですね。

タイマー用のテキストはどうやって作成したらいいんですか〜?

「GameObject」から「UI」→「Text」で新規作成しよう。背景によっては文字の色を変更しておく必要があるよ。

作成できました!

それではそのテキストに、以下のスクリプトを追加するよ。
次にテキストを表示するスクリプトを作成していきましょう。
using UnityEngine; using System.Collections; using UnityEngine.UI; public class Timer : MonoBehaviour { float countTime = 0; // Use this for initialization void Start () { } // Update is called once per frame void Update () { countTime += Time.deltaTime; //スタートしてからの秒数を格納 GetComponent<Text>().text = countTime.ToString("F2"); //小数2桁にして表示 } }
「Time.deltaTime」は前フレームとの秒数差を求めることができます。それをプラスしていくことによって、coutTimeにスタートしてからの秒数が入る仕組みです。
実行してみるとタイマーがスタートすることがわかります。
[PR] Unityを使ったゲーム開発で挫折しない学習方法を動画で公開中
まとめ
いかがでしたでしょうか。
今回はUnityでタイマーを使用する方法について書いていきました。
実際にコードを見てみると分かる通り、Unityでは簡単にタイマーを作成することができます。タイマー作成はサクッと終えて、ゲームの中身をどんどん作りこんでいきましょう。

ゲームを再生するとどうなったかな?

テキストのあった部分がタイマーになってます!

例えばコード内の「F2」の部分を「F3」にすると小数点第三位までの表示になるよ。使いたい場面に応じて調整しよう。

タイマーは色んなところで使えそうですね。覚えておきたいです!
[お知らせ]TechAcademyではオリジナルゲームアプリが公開できるUnityオンラインブートキャンプを開催しています。現役Unityエンジニアのサポートで効率的に学びたい場合はご検討ください。