unityのTime.deltaTimeを使ってミリ秒を計測する
こんにちわ。
ちょっとunityで時間計測プログラムを作りたいと思いまして、いろいろ調べていたのですが
↓こちらの方のやり方がスマートだと思い参考にして作ってみたのですが
blog.livedoor.jp
ミリ秒を計測することができないなぁと思いましてじゃあ作ろう!と思い作ったのがこちら
しかしこれ若干てまどいまして
Time.deltaTimeはミリ秒まで返すということが書いてあり
コンソールで確認してみたら
0.2
0.4
0.37333333
ってなってたんでミリ秒じゃなくてμ秒????って思ったんですけど(
返す値は秒でした・・・・
つまり0.2秒 0,4秒 0.37秒・・・という風に返ってくるわけですね。
返すのは最高でミリ秒μ秒?まで(だってこここで3333μ秒まででてるし)正確に計算できて返す単位は秒というわけだと勝手に解釈しています。
まぁミリ秒なんて計測しても意味ないんだけどね(笑)
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI;[f:id:saigonitoride:20170903214157g:plain] public class UI : MonoBehaviour { float time; Text text; void Start () { time = 0; text = GetComponent<Text>(); } void Update () { time += Time.deltaTime;//毎フレームの時間を加算. int minute = (int)time/60;//分.timeを60で割った値. int second = (int)time%60;//秒.timeを60で割った余り. int msecond = (int)(time*1000%1000); string minText, secText, msecText;//分・秒を用意. if (minute < 10) minText = "0" + minute.ToString();//ToStringでint→stringに変換. else minText = minute.ToString(); if (second < 10) secText = "0" + second.ToString();//上に同じく. else secText = second.ToString(); if (msecond < 10) msecText = "000" + msecond.ToString (); else if(msecond < 100) msecText = "00" + msecond.ToString (); else if(msecond < 1000) msecText = "0" + msecond.ToString (); else msecText = msecond.ToString (); text.text = "[Time] " + minText + ":" + secText + ":" + msecText ; Debug.Log (time); } }