【Unity】画面のカクつき、それ本当にFPSのせい?
最近ではあまり宣伝文句として使われないような気がするけど、Unityの大きな特徴といえば、更新処理がスケーラブルというところ。
1回の描画の間に更新処理が何回走るのかはUnityしか知らない。
地味な初心者殺し。
ていうところで、Update()を実装して、その中にオブジェクト(いわば描画される側)の移動や、カメラ(いわば描画する側(※1))の移動を行うと問題が発生することがある。
つまり、前回の描画と今回の描画の間に更新処理が100回走ったけど、今回の描画と次回の描画の間には1回しか更新処理が走りませんでした。
なんてことになると、描画するたびにオブジェクトが一瞬で移動したり、逆に全く移動しなかったりする。
そんな時、移動量に対してTime.deltaTImeを適切に掛け合わせてあげよう。
Time.deltaTImeは、前回の更新処理と今回の更新処理の間の経過時間を返してくれる。
※1・・・厳密にはカメラが描画するわけではないけど、関係性は大体そんなもの。