具体内容参考unity官方案例精讲第6张P170. 实现相机跟随在角色后方的固定位置,距离角色水平方向距离为distanceAway,垂直方法距离为distanceUp,求相机的目标位置targetPosition
public class CameraMover : MonoBehaviour { public Transform follow; //摄像机跟随对象 public float distanceAway = 5.0f;//设置摄像机距角色的水平距离 public float distanceUp = 2.0f;//设置垂直距离 public float smooth = 1.0f;//系数 private Vector3 targetPosition;//摄像机移动的目标位置 // Update is called once per frame void Update () { targetPosition = follow.position + Vector3.up * distanceUp - follow.forward * distanceAway; transform.position = Vector3.Lerp(transform.position, targetPosition, Time.deltaTime * smooth);//使用lerp,而并非transform.position = targetPosition的原因是使摄像机缓慢向目标位置移动,位置的突然变化会使镜头一晃一晃的,画面卡顿 transform.LookAt(follow);//摄像机正对目标方向 } }