相机跟随人物移动

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 方法将相机平滑地旋转到目标角度。

这段代码可以用于实现一个相机跟随玩家的功能,使得相机始终保持一定的偏移,并且在玩家移动或旋转时平滑地调整位置和角度。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值