问题
所以我制作了这款手机游戏,并且它有一个非常快的旅行者。由于玩家旅行速度非常快,相机也需要跟随。问题是,有时你玩的时候会有一个小的延迟。有没有更好的方法来编写我的脚本来跟踪快速移动的对象?
相机跟踪脚本
private void LateUpdate () {
Vector3 pos = new Vector3 (player.transform.position.x + offset.x,
transform.position.y,
player.transform.position.z + offset.z);
transform.position = Vector3.Lerp (transform.position, pos, Time.deltaTime * 40);
}
游戏下载链接,如果您想自己测试
答案 0 :(得分:0)
每帧调用Vector3.Lerp。在您的示例中,当t = 0时,Lerp的值为 transform.position ,而当t = 1时,Lerp的值为 pos 。即,在t = [0]之间,它从点A到B进行插值到1]。滞后(或chugging)可能是因为这一点。如果A和B的距离为10且t = 0.5,则摄像机移动50%,即5.如果在下一帧中距离为50且t = 0.5,则摄像机仍然移动50%,但距离为25希望很清楚。
为什么不简单地设置 transform.position = player.transform.position + offset ?