ゲームで時間を使いたいときはたくさんあります。
など
Unityでカウントするとなると一番に思いつくのはUpdate()で変数に+1し続けることだと思いますが、Update()は環境によってその実行間隔が変わるうえ、処理負荷によっても大きく変動します。
そこでUnityではUpdate()の実行間隔を取得する関数Time.deltaTimeを利用して時間を計測します。
GameManagerスクリプトに以下のコードを書きましょう
//経過時間を求めるコード
float time; //経過時間time
void Start()
{
time = 0; //ゲーム開始時にtimeを0で初期化
}
void Update()
{
time += Time.deltaTime; //前のUpdate()実行タイミングからの経過時間を足して累計時間を計算
if(Keyboard.current.tKey.wasPressedThisFrame)
{
Debug.Log(time); //Tキーが押されたら現在の経過時間を表示
}
}
Tキーを押すと現在の経過時間を表示できます。
また、ゲーム開始時からの経過時間を取得する関数Time.timeもあります。
//タイマーの実装
float time, countStartTime;
void Update()
{
if(Keyboard.current.tKey.wasPressedThisFrame)
{
countStartTime = Time.time; //Tキーが押されたら現在の時間を記憶
}
if(Keyboard.current.tKey.wasPressedThisFrame)
{
time = Time.time - countStartTime; //Tキーが押されたら計測を開始した時間と現在の時間の差を計算
Debug.Log(time); //計測時間を表示
}