朝陽をおかずに飯を食え

アプリ開発チーム「マツケソフト」(一人)の開発ブログだったり開発ブログでなかったりします。絵もかきます。Unity / Android な話題が多め。

カメラがぶれぶれだったりガクガクになる現象への対策

Unity でカメラの注視点として、プレイヤーキャラの GameObject のTransform を指定することはままあると思います。

カメラの更新とプレイヤの更新をスクリプトの Update() でやっていると、
カメラがぶれぶれ(ガクガク?)になってしまうことがままあります。

これは、各オブジェクトの Update() 関数が毎回同じ順番で呼ばれるわけではないということに
起因しているっぽいです。

Update の順番が入れ替わると、突然カメラが 2 フレーム分進んだり戻ったりするので、
そりゃガクガクになります。

どうやって対策するのか、それは、LateUpdate() を使うです。

LateUpdate() は Update() よりあとに呼ばれることが保証されるので、

プレイヤーの Update() で position を更新して、
カメラの LateUpdate() で その position を見てやればいいわけです。

これで、ガクガクカメラからおさらばなのかも。

ほか、無理やり毎フレームオブジェクト同士をくっつけている場合に離れちゃう!とかいう場合に
使えるかも。