Lerp的声明如下
public static Vector3 Lerp(Vector3 a,Vector3 b,float t)
具体返回值就是a+(b-a)*t;
通过Update调用达到逐渐接近的效果;
using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
public class CamerFollow : MonoBehaviour
{
// Start is called before the first frame update
public GameObject gameObject;
public Camera cam;
public float smooth;
void Start()
{
cam.transform.position = new Vector3(gameObject.transform.position.x,gameObject.transform.position.y,gameObject.transform.position.z-10);
}
// Update is called once per frame
void Update()
{
if(cam.transform.position.x != gameObject.transform.position.x || cam.transform.position.y != gameObject.transform.position.y || cam.transform.position.z!=gameObject.transform.position.z - 10)
{
cam.transform.position = Vector3.Lerp(cam.transform.position, new Vector3(gameObject.transform.position.x, gameObject.transform.position.y, gameObject.transform.position.z - 10), smooth);
}
}
}