2014年5月10日土曜日

Unity : FixedUpdate と Update の違い

Unity 公式のチュートリアルビデオ(英語) : Update and FixedUpdate
リファレンス : MonoBehaviour.FixedUpdate()

簡単にまとめると、

FixedUpdate


物理シミュレーション用のアップデート関数で、必ず一定時間毎に呼ばれる。
FixedUpdate 関数が呼ばれた後、必要な物理計算が行われる。
物理オブジェクト(RidigBody) に対して AddForce で力を加える場合等に利用する。
1フレーム(1回のUpdate)に対して複数回呼ばれる事がある。
FixedUpdate の中で Time.deltaTime を呼ぶと、Update からの経過時間ではなく fixedDeltaTime が取得できる(!)

Update

描画フレームのアップデートに対応した関数。一定時間毎に呼ばれるとは限らない。
非物理オブジェクトを Translate 等で直接移動する場合は、こちらの関数の中で Time.deltaTime を使って時間を考慮して移動する。
Time.deltaTime で得られる値は前回の Update からの経過時間。

その他参考ページ
[Unity3d] Update, OnGUI, FixedUpdate などの呼び出し順序
Unity におけるフレームと Update

以下のページは英語だけど、 Awake, Start, OnGUI, WaitFor* を使用している Coroutine等の実行タイミングも描かれたフロー図がとてもわかりやい
Unity3D MonoBehaviour Lifecycle

0 件のコメント:

コメントを投稿