【Unity】 タイマー機能の実装 (00:00の形)
今回参考にさせていただいた資料はこちらです.[1]
□ 説明 & 環境
【説明】
資料を参考にして,
勉強になった点 → POINT!
失敗した点→ ERROR!
補足した点 → ADD!
と表記しています.
【環境】
MacBook Pro (13-inch, 2017, Two Thunderbolt 3 ports)
HUAWEI nova lite3
Unity 2020.3.15f2 LTS
※ Unity内の画面レイアウトは異なるかもしれません.
□ タイマー機能を実装したい
#15 ではスライダーを用いたタイマー機能の実装をしました.[2]
以下のgifを見ていただいても分かる通り,数字が小数点表示されておりタイマーらしくありません.
今回は,00:00 の形でタイマー表示させていきたいと思います.
□ 準備
シーン(Timer2)を作成し,Text を追加していきます.
シーンの背景の変更の仕方についてはこちらをご覧ください.[3]
Text の追加が完了したら,C#スクリプトの作成をしていきたいと思います.
(Timer2.cs)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Timer2 : MonoBehaviour
{
public float timeRemaining = 10;
public bool timerIsRunning = false;
public Text timeText;
private void Start()
{
// Starts the timer automatically
timerIsRunning = true;
}
void Update()
{
if (timerIsRunning)
{
if (timeRemaining > 0)
{
timeRemaining -= Time.deltaTime;
DisplayTime(timeRemaining);
}
else
{
Debug.Log("Time has run out!");
timeRemaining = 0;
timerIsRunning = false;
}
}
}
void DisplayTime(float timeToDisplay)
{
timeToDisplay += 1;
float minutes = Mathf.FloorToInt(timeToDisplay / 60);
float seconds = Mathf.FloorToInt(timeToDisplay % 60);
timeText.text = string.Format("{0:00}:{1:00}", minutes, seconds);
}
}
□ 実装
準備が完了したら,反映させていきたいと思います.
Timer2 (C# script) > Add Component にドラッグ&ドロップ
TimerText > Timer Text にドラッグ&ドロップ
Timer Remaining で秒数設定できます.
30秒で設定します.
上手く動きました!
カウントが終わると,知らせてくれます.
□ まとめ
最近,開発の難易度が徐々に難しくなっていると実感します,,.
コードの理解や開発の基礎について本格的に勉強しないとついていけなくなるかもと考える日々です.さらに精進していきます!
次回はこのプログラムとスライダーを繋げていきたいと思います.
□ 謝辞
gamedevbeginner さんのサイトを参考にさせていただきました.
コードの意味を順を追って説明されていたためとても分かりやすかったです!
ありがとうございました!
21/10/18