【Unity】いろいろなタイマー

ストップウォッチが無事に作れたと言う事で、
次はタイマーを作ってみたいと思います。

タイマーと一口に言っても、テキスト表示だけではストップウォッチと変わりません。
なので、いろいろと視覚的なタイマーを作ってみたいと思います。


タイマーの時間は、60秒からのカウントダウンで0になれば終了とします。

タイマーの視覚効果として、
・色変化
・プログレスバー
・アクション

この辺を盛り込んでみたいと思います。


できたものを動画にしてみました。


それにしても目がチカチカする (@-@)
見て下さった方申し訳ないです。_(._.)_ ユルシテ

時間経過に合わせて、いろいろなタイマーを作ってみました。

各タイマーの作り方は、順次ブログに挙げる予定でっす。

今回の〆は、デジタルタイマーの作り方を
Timer①.jpg
まず、スタート用のButtonオブジェクトと時間表示用のTextオブジェクトを用意します。

Textには、60.00と入力しておきます。
続いて、スクリプトを作成します。
TimerManager

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class TimerManager : MonoBehaviour
{
//タイマー用変数
public float LimitTime; //タイマーの設定時間
private bool counting;          //タイマー稼働フラグ

//デジタル表示
public GameObject DigitalText; //デジタル表示
private Text digetaltext; //デジタル表示コンポーネント

// Start is called before the first frame update
void Start()
{
//テキストコンポーネント取得
digetaltext = DigitalText.GetComponent<Text>();
}

// Update is called once per frame
void Update()
{
if (counting)
{
TimerCount();
}
}

//タイマー機能
void TimerCount()
{
//60秒から経過時間を引く
LimitTime -= Time.deltaTime;

DigitalDisplay();

//タイマーの停止
if (LimitTime <= 0)
{
counting = false;
}
}

//タイマーのデジタル表示
void DigitalDisplay()
{
digetaltext.text = LimitTime.ToString("F2");
}

//タイマースタート
public void PushStart()
{
counting = true;
}

テキストを書き換えるので、using UnityEngine.UI;を宣言。
説明する程でもないのですが、
LimitTimeからdeltaTimeを引いて、その値をテキストに代入しているだけです。
数値を文字列に変換する際、小数点以下を指定できるので、
F2で小数点以下2位まで文字化しています。

Timer②.jpg
後は、LimitTimeの設定と
DigitalTextに表示用テキストオブジェクトをアタッチして、

スタートボタンにPushStart()メソッドを割り当てれば機能します。

数値表示のタイマーは、以上となります。

次回は、背景カラーのタイマーをまとめてみます。

・・・・・・・・~~~ヽ(^◇^))) ほな、さいなら!

この記事へのコメント