首先声明target为需要跟随的物体
public Transform target;
声明跟随距离,以及跟随距离的增长速度,使用鼠标滚轮可以拉伸镜头
public float viewDistance = 8f;
public float viewDistanceMoveSpeed = 1f;
声明缓动系数
public float springRatio = 0.05f;
然后在LateUpdate函数里编写代码,因为摄像机追踪需要发生在物体移动后。
首先鼠标滚轮可以拉伸镜头
viewDistance += Input.GetAxis("Mouse ScrollWheel") * viewDistanceMoveSpeed;
之后使用Vector3.MoveTowards将相机移动到目标地点。目标地点的坐标计算过程如下。
target.transform.forward得到目标物体当前朝向的前方在世界坐标系下的方向,和Vector.foraward是不同的。之后用目标物体减去这个值,就是当前目标物体所朝方向的后方。
然后摄像机需要稍稍在y轴方向向上移动,可以给人一种略微俯视的感觉。
最后增加进缓动系数来移动摄像机
this.transform.position = Vector3.