今回はカウントダウンタイマーの作り方をご紹介します。
カウントダウンタイマーが作れると、制限時間があるゲームやスマホゲームでよくあるスタミナ機能などにも応用できますよね。
完成イメージはこんな感じです。10秒からカウントして、0になったらストップします。
それでは早速作ってみましょう!
シーンの作成・下準備
プロジェクトを作成します。どの形式でも構いませんが、今回は2D Mobileで作成し、Game画面のサイズは16:9 Portraitにしました。
新規シーンを作ります。今後発展させてスタミナタイマーにしたいのでシーン名は「Stamina」と名付けました。
さらに、タイマーの数字を表示するためのテキストを用意します。
左上のHierarchyの下の+ > UI > Legacy > Textを選択し、Textオブジェクトを作ります。
こんな感じになっていれば大丈夫です。(CanvasとEventSystemは勝手に作られますがそのままでOK)
TimerTextのInspectorを編集します。
Textにはひとまず10と入力し、Font Sizeを100、Horizontal OverflowとVertical OverflowはどちらもOverflow、Colorは白にしました。
ゲーム画面でテキストが見えていればOKです。
次に、後でスクリプトをアタッチするための空オブジェクトを作成します。
+ > Create Emptyで空オブジェクトを作成します。オブジェクト名は「Timer」にしました。
スクリプトを作成します。下の方の「Project」ウィンドウから、スクリプトを置きたいフォルダ(ここではAssetsフォルダの中にScriptsフォルダを作りました)に移動し、
右クリック > Create > C# Scriptを選択してスクリプトを作成します。
スクリプトの名前も「Timer」にしました。
Hierarchy上で先ほど作ったTimerオブジェクトをクリックし、InspectorにTimerスクリプトをドラッグ&ドロップします。
このようになっていればOK!これでスクリプトをアタッチできました。
スクリプトの作成
カウントダウンタイマーを動かすためのスクリプトを作っていきます。
先ほど作ったTimerスクリプトを開いて編集します。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI; // UIを使うときに必要
public class Timer : MonoBehaviour
{
[SerializeField]
Text TimerText;
float limitTime = 10; // 制限時間
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
limitTime -= Time.deltaTime;
if (limitTime < 0)
{
limitTime = 0;
}
TimerText.text = limitTime.ToString("F0"); // 残り時間を整数で表示
}
}
8,9行目で、数字を表示するテキストを宣言しています。[SerializeField]と付けることで、インスペクター上で先ほど作ったTimerTextオブジェクトをドラッグして紐づけることができます。
21行目でUpdateメソッドが呼ばれるたびに制限時間(limitTime)が減るようにしています。
23〜26行目で、制限時間が0未満になったらlimitTimeも0となるようにし、28行目で制限時間を整数で表示するようにしています。(”F0″と書くと整数。小数点以下第1位まで表示したい時は”F1″にします。)
保存してUnityの画面に戻ります。
Timerオブジェクトをクリックすると、インスペクターにTimerTextオブジェクトを指定できる欄ができているので、ドラッグ&ドロップします。
これでスクリプトとUnity上のオブジェクトの紐付けができました。
完成!
それでは▶︎ボタンでゲームを実行し、動作を確認してみましょう。
10秒からカウントダウンし、0になったら止まります。
カウントダウンタイマーができました!
ゲームへの活用
カウントダウンタイマーは色々なゲームに活用することができます。
- 制限時間があるゲーム(時間が0になったらゲームオーバー、ポイント集計など)
- 一定時間が経過したらスタミナが1増える
- 放置ゲームで作物やキャラクターが育つ、資源が増える など
使えるようになった技術でミニゲームを作っていくとゲーム制作の練習になりますよ!
Unityでのゲーム制作を基本から学びたい方にはこちらの書籍がおすすめ!
毎年最新版が出るので、今の環境でスムーズに学習できますよ。
基礎から分かりやすく解説されているので、プログラミングが初めての方にもおすすめです。
筆者もこの本から始めてスマホゲームをリリースしました!
工夫してご自身のゲームに役立ててもらえれば幸いです。
スタミナタイマーへの応用
今回のカウントダウンタイマーを発展させて、スタミナタイマーも作ってみました。
よかったらこちらも参考にしてみてくださいね。それではまた!