· 

【Unity】FixedTimestepをスクリプトから取得する


Last Updated  2025.03.28

 Project Settings にある、FixedUpdateの実行間隔を指定できる項目── 

 要するに、プロジェクトの1フレームが何秒なのかの設定である 

FixedTimestepの場所

FixedTimestep を

 

 スプリクトから取得する方法の備忘録になります。

FixedTimestepの値をスクリプトで取得する

 ▼ fixedDeltaTime を使用します

using UnityEngine;

// FixedTimestep取得のサンプルスクリプト

public class GetFixedTimestepSample : MonoBehaviour
{
    void Start()
    {
        float _1Frame = Time.fixedDeltaTime;
    }
}

注意点

 同じProject Settings内にある《TimeScale》が

float timeScale = Time.timeScale;
Debug.Log(timeScale); 

 で取れるので

 単純に " Time.fixedTimestep " で取れるかと思ったら……

× float _1Frame = Time.fixedTimestep; // ※ダメな書き方

 通りません。赤エラーになります。

 なので、《FixedTimestep》を参照したい場合は

 ちゃんと Time.fixedDeltaTime と記述しましょう (自分への戒め)

調べた経緯について

 格闘ゲームを制作する上で、絶対に避けて通れないのがフレーム単位の考え方です。 

  • 『発生は何フレーム』
  • 『持続は何フレーム』
  • 『入力の受け付けは何フレーム』 


 といった具合に、いたるところで頻出します。 

 

 これに対し、作る側はちゃんと『把握しながら設定できる』プロジェクト設計にするのが望ましいですし、自分も『時間』ではなく『フレーム単位』での考え方が定着してしまっているので、なるべくフレームで管理、設定できる方法を模索しています。
 

 "何秒" より "何フレーム" かで考えた方が解りやすいのが格ゲー脳なんです。そういうものなんです。

 今回の記述を使えば
 FixiedTimestepに設定している時間 = 1フレームになるので

 fixedDeltaTimeで習得した値に、指定したいフレーム数を乗算すればいいですね。

 

 

 float値を参照するスクリプトを扱う場合でも、『任意のフレームで何々する』といった記述が可能になるので、指定方法や記述場所の選択肢が 『フレーム単位の考え方 を崩さずに増やせると思います。

▼参考元 (※ただしTime.fixedDeltaTimeという記述に関しては解りにくかったです)