摄像机跟随主角移动有多种方式,第一人称视角的话摄像机保持和主角一直的位置和朝向,并增加一些平滑移动即可。第三人称的(包括越肩和斜45读视角),就复杂一些,因为有时候会导致摄像机和主角之间有东西挡着,照不到主角。
这种情况可以用射线来判断和主角之间是否有遮挡物,并设置多个位置,便利寻找不会被遮挡的位置。
以下是官方示例中的跟随例子:
void Awake() {
player = GameObject.FindGameObjectWithTag(Tags.player).transform;
offset = transform.position - player.position;
offset = new Vector3(0, offset.y, offset.z);
}
void UpdateCamePos () {
Vector3 beginPos = player.position + offset;
Vector3 endPos = player.position + offset.magnitude * Vector3.up;
Vector3 pos1 = Vector3.Lerp(beginPos, endPos, 0.25f);
Vector3 pos2 = Vector3.Lerp(beginPos, endPos