unityのメソッドでupdateとFixedUpdateという似たものがある。
Updateは1フレームごとに実行される。
✅1フレームというのは1秒間に60-80回程度連続で実行されるが、パソコンのスペックやその時の処理の重さによって変化してしまう。
✅一方、FixedUpdateは1秒間に実行される回数が決まっている。
デフォルトでは1秒間に50回実行されることが決まっている。
よって、update()は処理されるスピードが一定ではないので、transformなどで移動処理をするときはなめらかで無くなってしまうことがある。
FixedUpdateでは入力処理などを行うのはやめたほうが良い。一定間隔で処理をするため、ユーザーの操作次第では入力にラグがでてしまって思わぬ誤動作を生む可能性がある。
✅キャラクターの移動いはupdateが良いか
Updateメソッドはコンピューターの性能によって呼ばれる回数が変わってくるためキャラクターの移動をさせる時等は性能差を考慮したスクリプトにする必要。
その為に使用するのがTime.deltaTime。
このTime.deltaTimeは最後のフレームを終了するのに要した時間、つまりは前回のUpdateから今のUpdateが呼び出されるまでの時間を表す。
Time.deltaTimeはUpdateの実行回数にかかわらず1秒間での動作距離を同じに出来ます。
Updateが10回の場合は0.1秒間に0.1m移動
Updateが20回の場合は0.1秒間に0.05m移動
という風に調整されます。
characterController.Move(velocity * Time.deltaTime);
コメント