質問: 解説サイトなどを見ていると、オブジェクトを動かする時、ちょくちょく * Time.deltaTime を使って時間調整をしようとしてるのを見かけます。 オブジェクトをプレイヤー環境に左右されることなく、スムーズに移動させるため、なのでしょう。 ただ、これなのですが、もし、FixedUpdate内で処理している場合、「* Time.deltaTime」で時間調整する必要はあるんでしょうか? 私の調べた範囲では、updateはキー入力の時だけ使って、他はFixedUpdateを使った方がいい、とのことなので、通常はほぼ、FixedUpdateを使ってると思います。だとすると 「* Time.deltaTime」はそんなに出番ないように思うのですが、これを使ってる人が多いのはなぜなのでしょうか?
回答: この話、私も気になって少し調べてみましたが色々な記事を見たところ、`FixedUpadate`内で`Time.deltaTime`を使う必要性はほぼないようです。 ただし、`FixedUpadate`が常に一定の間隔で処理されるのか?という点では、高負荷環境下ではそうでもない、ということでした。参考URL【Unity検証】FixedUpdateは本当に一定間隔なのか その為、一応使用しておけば確実。のように保険的な側面で使用されているのではないでしょうか。 `Time.deltaTime`をよく使う理由としては、フレームレートでの処理にするか、もしくは秒単位での処理にするか、という点で使用されているようです。`Time.deltaTime`を使用しない場合、フレームレートでの処理となるので、マシンの性能差によって影響が出ます。これはタイムカウントなどの処理を`Time.deltaTime`使わずに行っていた場合、性能がいいマシンの方が同じ手順を踏んでも結果がよくなる、という欠陥が生まれます。参考URL【Unity】「Time.deltaTime」を使わないといけない理由を説明する そういった理由からよく使用されているわけですね。 私自身もこの話は未熟なため、間違ったとらえ方をしているかもしれませんが、概ねこのような話だと思います。