ユニティちゃん神楽で使われていたのを見て知ったのでメモ。
unity-chan.com

- カメラに Position Constraint コンポーネントをアタッチして、Sources に追従対象のオブジェクトを追加すると、オブジェクトの移動に合わせてカメラが移動追従する
- 複数のオブジェクトを対象にすると、その中間値が使われる
- IsActive にチェックをすると、シーン上からカメラの移動ができなくなるので注意
- Freeze Position Axes で、追従させる方向も指定できる。Y を外しておけば、オブジェクトの上下移動がカメラに伝わらない
この Constraint コンポーネントは兄弟がいて、他にも
- Rotation Constraint
- Scale Constraint
- Parent Constraint
- Aim Constraint
- Look At Constraint
がある。カメラと追従対象の距離が変わる場合は、Aim Constraint とか Look At Constraint でカメラがずっと対象のオブジェクトを捉え続けるようにできるみたい。
ちなみに、いつも追従させるときは、以下のような簡単な C# スクリプトを用意していたが、これがそのまま Postion Constraint で置き換わるイメージ。
using UnityEngine; public class MainCameraController : MonoBehaviour { public GameObject targetObj; private Vector3 offset; void Start() { offset = transform.position - targetObj.transform.position; } void Update() { transform.position = target.transform.position + offset; } }