先看效果:
/// <summary>
/// 控制摄像机跟随角色
/// </summary>
public Transform target;//目标物体,角色
public Vector3 chaZhi;//插值
public float currentZoom = 10f;//控制这个轴就可以控制相机的yz轴向,也就是控制看向角色的距离
public float pitch=2;//控制视角的上下
float currentYaw;//当前的yaw值
private void Update()
{
currentYaw -= Input.GetAxis("Horizontal");//获取ad键 控制旋转;
}
// Start is called before the first frame update
private void LateUpdate()
{
transform.position = target.position - chaZhi*currentZoom; //控制相机的位置通过减去插值跟随物体
transform.LookAt(target.position+Vector3.up* pitch);//摄像机看向物体
float zoom = Input.GetAxis("Mouse ScrollWheel") * currentZoom;//获取鼠标滚轮的数值
currentZoom = Mathf.Clamp(currentZoom, 2, 10);//控制视角的最大和最小
currentZoom -= zoom;//当前的视角
transform.RotateAround(target.position, Vector3.up, currentYaw);//第一个参数绕某个位置,第二个参数以什么方向旋转,第三个参数旋转多少度
}