真正快速移动的球员的小游戏滞后

时间:2018-01-13 05:16:30

标签: c# performance unity3d

问题

所以我制作了这款手机游戏,并且它有一个非常快的旅行者。由于玩家旅行速度非常快,相机也需要跟随。问题是,有时你玩的时候会有一个小的延迟。有没有更好的方法来编写我的脚本来跟踪快速移动的对象?

相机跟踪脚本

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);

}

游戏下载链接,如果您想自己测试

Android Link

iOS Link

1 个答案:

答案 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