Unity、C#で秒を時間(hh:mm:ss)に変換する方法(スクリプト)を説明していきます。
181秒 → 00:03:01 に変換する処理です。
秒 時間 変換
181秒 → 00:03:01 に変換する
スクリプト
// 秒 float s = 181.0f; // TimeSpanのインスタンスを生成。時分は0でOK var timespan = new TimeSpan(0, 0, (int)s); // hh:mm:ss形式に変換(String) var time = timespan.ToString(@"hh\:mm\:ss"); Debug.Log(time); // 00:03:01
時間計測 時間表示
時間を計測して、hh:mm:ss形式で表示する。
タイムを表示したいときによく使う。
スクリプト
using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class Timer : MonoBehaviour { [SerializeField] Text text_; float elpasedTime_; // Start is called before the first frame update void Start() { elpasedTime_ = 0.0f; } // Update is called once per frame void Update() { // 1フレームの経過時間を計測 elpasedTime_ += Time.deltaTime; // TimeSpanのインスタンスを生成。時分は0でOK var timespan = new TimeSpan(0, 0, (int)elpasedTime_); // hh:mm:ss形式に変換(String) var time = timespan.ToString(@"hh\:mm\:ss"); // テキストを更新 text_.text = time; } }
スクリプト解説
毎フレームの経過時間をelpasedTime_に計測。
毎フレームelpasedTime_をhh:mm:ssに変換し、
Textを更新。
あとは、スクリプトのアタッチと、
[SerializeField]
Text text_;
Scene側のTextをスクリプトのNone部分にアタッチすれば
動くようになります。
おわりに
今回は、Unity、C#で秒を時間(hh:mm:ss)に変換する方法(スクリプト)を説明しました。
この記事が何かのお役に立てれば幸いです。
Web(frog blend)
・公式HP「ふろっぐぶれんどのゲームセンター」
・外部リンクまとめ