[Unity] UpdateとFixedUpdateにおけるTime.deltaTimeの実行結果

2021年1月3日

Time.deltaTime は、それを呼び出すループ関数(Update や FixedUpdate)に応じて自動的に出力される値を変化させます。

FixedUpdate の更新間隔は Time.fixedDeltaTime で取得できますが、スクリプトリファレンスでは以下のように説明され、Update と FixedUpdate のどちらにおいても更新間隔の取得に Time.deltaTime を使用することが推奨されています。

For reading the delta time it is recommended to use Time.deltaTime instead
because it automatically returns the right delta time if you are inside a FixedUpdate function or Update function.
Time-fixedDeltaTime - Unity スクリプトリファレンス

ループされる関数の種類を気にしなくても Time.deltaTime によってその更新間隔を得ることができるようです。

Time.deltaTimeの出力

試しに簡単なスクリプトを作り、実際に出力される値を調べてみました。

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

public class DeltaTimeTest : MonoBehaviour
{

    void Update()
    {
    	// Update における Time.deltaTime を出力
        if (Input.GetKeyDown(KeyCode.Escape)) {
        	print("Time.deltaTime in Update: " + Time.deltaTime);
        }
    }

    void FixedUpdate() {
    	// FixedUpdate における Time.deltaTime を出力
    	if (Input.GetKeyDown(KeyCode.Space)) {
    		print("Time.deltaTime in FixedUpdate: " + Time.deltaTime);
    	}
    }
}

このスクリプトは、Escapeキーを押すと Update における Time.deltaTime の値を、Spaceキーを押すと FixedUpdate における Time.deltaTime を出力します。

試したプロジェクトにおける時間間隔の設定と実行結果は以下のようになります。

設定

Unityプロジェクトの時間間隔設定

実行結果

UnityのTime.deltaTimeの値

どちらも 0.02 に近い値が出力されました。

Update 関数内においては、実行する度に異なる値が出力されますが、FixedUpdate 関数内では、毎回きっちり 0.02 が出力されています。

以上、UpdateとFixedUpdateにおけるTime.deltaTimeの実行結果でした。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です