unity-摄像机跟随

本文介绍了一种Unity中实现摄像机平滑跟随玩家的方法。通过使用SmoothDamp函数,并结合FixedUpdate事件,确保了摄像机能够平稳地跟随移动的目标。此外,还介绍了如何为玩家角色设置标签以便摄像机识别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.首先给摄像机添加一个脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CameraFollow : MonoBehaviour
{
    private Transform targer;//目标
    private Vector3 offset;//偏移量
    private Vector2 velocity;//当前速度,此值由函数在每次调用时进行修改。


    private void Update()
    {
        if (targer == null && GameObject.FindGameObjectWithTag("Player"))//查找目标,该判断可避免重复赋值
        {
            targer = GameObject.FindGameObjectWithTag("Player").transform;
            offset = transform.position - targer.position;
        }
    }
    private void FixedUpdate()//1
    {
        if (targer != null)
        {
            float posX = Mathf.SmoothDamp(transform.position.x, targer.position.x - offset.x, ref velocity.x, 0.05f);//2
            float posY = Mathf.SmoothDamp(transform.position.y, targer.position.y - offset.y, ref velocity.y, 0.05f);

            transform.position = new Vector3(posX, posY, transform.position.z);
        }
    }

}

//1.FixedUpdate()固定更新事件,执行N次,0.02秒执行一次。所有物理组件相关的更新都在这个事件中处理。

//2.Mathf.SmoothDamp

随时间推移将一个值逐渐改变为所需目标。

值通过某个类似于弹簧-阻尼的函数(它从不超过目标)进行平滑。 

属性:

current-当前位置。

target-尝试达到的目标。

currentVelocity-当前速度,此值由函数在每次调用时进行修改。

smoothTime-达到目标所需的近似时间。值越小,达到目标的速度越快。

2.给要跟随的玩家添加一个tag

摄像机的跟随就完成啦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值