heii22 2024-02-21 21:31 采纳率: 66.7%
浏览 3
已结题

Unity摄像机Vector3.Lerp跟随问题

我做愤怒的小鸟小游戏 小鸟移动的方式是通过刚体的velocity赋值
但是当我用Vector3.Lerp赋值让摄像机跟随的时候
小鸟图片会来回抖动抽搐 放在update里和lateupdate里都一样
我就把摄像机跟随逻辑放在FixedUpdate里了,发现这个时候不会出问题 这是什么原因 有没有人解惑
明面别人视频里放在update里一点问题都没有

public void Follow()
{
    if(target==null)
    {
        return;
    }
    transform.position = Vector3.Lerp(transform.position, new Vector3(target.position.x, target.position.y, transform.position.z), Time.fixedDeltaTime * 5);
    //Time没关系
    //ransform.position = new Vector3(target.position.x,target.position.y,transform.position.z);
    if (transform.position.x <0)
    {
        transform.position = new Vector3(0,transform.position.y,transform.position.z);
    }
}

  • 写回答

1条回答 默认 最新

  • GISer Liu 2024-02-21 21:32
    关注

    该回答引用自GPT-3.5,由博主GISer Liu编写:

    问题的根本在于使用了Vector3.Lerp来实现摄像机跟随小鸟的位置,而Lerp方法会在每一帧都在两个位置之间进行线性插值,这会导致位置不断地在两者之间来回插值,从而造成了抖动。

    将摄像机跟随逻辑放在FixedUpdate里解决了问题的原因是,FixedUpdate是在物理引擎更新之后调用的,而UpdateLateUpdate则是在渲染之前调用的。由于刚体的位置更新是在物理引擎中进行的,将摄像机跟随逻辑放在FixedUpdate里可以确保摄像机的位置更新与刚体位置的更新同步,避免了抖动现象。

    解决方案是确保摄像机的位置更新与小鸟的位置更新同步。可以通过将摄像机跟随逻辑放在FixedUpdate中实现,或者使用其他方法来实现摄像机跟随,例如直接将摄像机的位置设置为小鸟的位置,而不是进行插值运算。如果需要平滑的跟随效果,可以考虑使用SmoothDamp等方法来实现。

    如果该回答解决了您的问题,请采纳!如果没有,请参考以下方案进行修订

    用户答题指南

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 2月29日
  • 已采纳回答 2月21日
  • 创建了问题 2月21日

悬赏问题

  • ¥15 无源定位系统的时差估计误差标准差
  • ¥15 请问这个代码哪里有问题啊
  • ¥20 python--version在命令端输入结果Python is not defined怎么办?还有pip不是exe格式是不是没安装成功?
  • ¥15 通过GaussianView进行结构微调消除虚频
  • ¥15 调用transformers库
  • ¥15 由于导出的数据名字中带有/,导致Matlab打不开,怎么办?
  • ¥15 新硬盘安装的程序总是崩溃,提示遇到错误
  • ¥15 openpcdet自制数据集评估bev精度和3d精度相同
  • ¥15 excel 上下按钮 显示行
  • ¥20 云卓h12pro 数传问题