カメラを追従させる メモ2
・カメラをターゲットに向ける//LookAt関数
・カメラを回転させる
水平回転角度 horaizon
上下回転角度 vertical
カメラと注視点間の距離 distance
この3つの値が必要になる
Vector3 relativePos = Quaternion.Euler
(verticalAngle,horizontalAngle,0) * new Vector3(0,0,-distance);
・ユーザー入力による回転の更新
スライド操作を実装したスクリプト内の関数を使う//Moved関数
if(inputManager.Moved()){//ドラッグ入力でカメラのアングルを更新する
GetDeltaPositin関数を使いカーソル移動量を取得する。
if (inputManager.Moved()) {
float anglePerPixel = rotAngle / (float)Screen.width;
Vector2 delta = inputManager.GetDeltaPosition();
horizontalAngle += delta.x * anglePerPixel;
horizontalAngle = Mathf.Repeat(horizontalAngle,360.0f);
verticalAngle -= delta.y * anglePerPixel;
verticalAngle = Mathf.Clamp(verticalAngle,-60.0f,60.0f);
・障害物を避ける
Linecast関数を使用する。Raycast関数とほぼ同じ機能だが、始点と終点を指定できるので使用。
実装すると・・・
カメラ一つでも実装するのに大変ですね。。。
しかしある種公式のような気もするので、そこまで深く考える必要もないのかもしれません。