unity摄像机平滑跟随脚本分享

345 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

将如下脚本挂在camera上,然后把目标物体拉过来即可在这里插入图片描述

using UnityEngine;

public class SmoothFollow : MonoBehaviour {
    public Transform target; // 目标位置

    private float targetRotationAngle;  //目标的旋转角度
    private float myRotationAngle; //需要的旋转角度

    private Quaternion adjustedRotation; //调整后的Rotation

    private Vector3 offsetPostion;  //位置偏置

    private void Start() {
        offsetPostion = new Vector3(0, 5, -10); //偏置y方向5个单位,z方向-10个单位
    }

    private void LateUpdate() { //Update之后执行,使摄像机移动更平滑
        if (!target) {
            return;
        }

        //根据自身与目标的旋转角度平滑变动
        targetRotationAngle = target.eulerAngles.y;
        myRotationAngle = transform.eulerAngles.y;
        myRotationAngle = Mathf.LerpAngle(myRotationAngle, targetRotationAngle, 0.3f);

        adjustedRotation = Quaternion.Euler(0, myRotationAngle, 0); //调整过后的Rotation

        transform.position = target.position + (adjustedRotation * offsetPostion);   //根据目标位置调整自身
        transform.LookAt(target);   //看向目标
    }
}