using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraFollow : MonoBehaviour
{
Vector3 offset=new Vector3(0,3,-5);// 相机相对于玩家的偏移量
Vector3 camerePos;// 相机的位置
float speed = 5f;// 插值运算的速度
// Update is called once per frame
void Update()
{
// 计算相机的目标位置
camerePos = GameInit.instance.player.transform.position + offset;
// 使用插值运算平滑地移动相机到目标位置
this.transform.position = Vector3.Lerp(this.transform.position, camerePos, speed*Time.deltaTime);
// 计算相机的目标旋转
Quaternion quaternion = Quaternion.LookRotation(GameInit.instance.player.transform.position - this.transform.position);
// 使用插值运算平滑地旋转相机到目标角度
this.transform.rotation = Quaternion.Slerp(this.transform.rotation,quaternion,speed*Time.deltaTime);
}
}
offset
变量定义了相机相对于玩家的偏移量,speed
变量定义了插值运算的速度。
在 Update
方法中,我们计算了相机的目标位置 cameraPos
,并使用 Vector3.Lerp
方法将相机平滑地移动到目标位置。然后,我们计算了相机的目标旋转 quaternion
,并使用 Quaternion.Slerp
方法将相机平滑地旋转到目标角度。
这段代码可以用于实现一个相机跟随玩家的功能,使得相机始终保持一定的偏移,并且在玩家移动或旋转时平滑地调整位置和角度。