前の記事で、SDユニティちゃんにCharacterControllerを設定して操作できるようにしました。
今回は、ユニティちゃんを追従するようにカメラの設定から行っていきます。
線形補間によるシンプルかつスムーズに追従するスクリプトを作成します。
線形補間によるスムーズなカメラの追従方法
ユニティちゃんを追いかけるカメラ追従スクリプトを作成する
まずは、ユニティちゃんを追従するスクリプト「CameraController」を新規作成します。
LateUpdate関数を使う事で、ユニティちゃんの移動処理が終わった後に、カメラの位置を決めるようになります。対象となるオブジェクトとの位置関係を保つためですね。
全てのUpdate関数の処理が終わった後という特徴を活かしての処理になります。
「Vector3.Leap」は線形補間と呼ばれ、カメラの現在地とユニティちゃんとの距離を一定の割合で縮めるような処理を行います。
距離が離れていれば早く近づき、近ければゆっくり近づくようになります。
ややこしく話すと、Vecror3.Leapの第一引数と第二引数の間の値で、第三引数の割合に相当する値を返します。上のスクリプトでは第三引数を「5.0f」にしていますが、この値を変更することで滑らかさも変わります。
スクリプトを保存したら、MainCameraにアタッチして、スクリプトの「Target」にユニティちゃんを設定してあげましょう。
カメラの位置をユニティちゃんの後ろに配置してゲームを実行してみましょう。
ステージが真っ白でやや分かりにくいですが、カメラがユニティちゃんを追いかけています。
カメラ以外のオブジェクトにも使える便利な関数なので、是非使ってみてください。