Unity3d 相机移动和旋转跟随玩家非常急促

Unity3d 相机移动和旋转跟随玩家非常急促,unity3d,game-physics,Unity3d,Game Physics,我使角色在圆的表面上移动。我让相机跟随角色移动和旋转。但是相机的移动和旋转非常不平稳。如果我增加第三个参数的值,冲击会增加。为了减小第三个参数的值,相机不旋转以保持角色。帮我修一下 我的密码摄影机跟随播放机 public class CameraFollow : MonoBehaviour { public Transform player; GameController gc; public float speed = 2; Vector3 pos = new

我使角色在圆的表面上移动。我让相机跟随角色移动和旋转。但是相机的移动和旋转非常不平稳。如果我增加第三个参数的值,冲击会增加。为了减小第三个参数的值,相机不旋转以保持角色。帮我修一下

我的密码摄影机跟随播放机

public class CameraFollow : MonoBehaviour
{
    public Transform player;
    GameController gc;
    public float speed = 2;
    Vector3 pos = new Vector3 (0, 0, -10);
    // Use this for initialization
    void Start ()
    {
        gc = FindObjectOfType (typeof(GameController)) as GameController;
    }
    void FixedUpdate ()
    {
        if (gc.gameState == GameController.GameState.playing || gc.gameState == GameController.GameState.changeWave) {
            transform.position = player.position + pos;
            transform.rotation = Quaternion.Slerp (transform.rotation, 
                                                   player.transform.rotation, 
                                                   speed * Time.deltaTime);
        }
    }
}

FixedUpdate
中设置变换的位置肯定是一个危险信号,尤其是当您报告变换“不稳定”时。与显示的帧相比,固定更新以不规则的间隔发生。这是因为物理学需要使用固定的时间步长进行更新。这种情况的原因超出了这个问题的范围

长话短说,试着将
FixedUpdate
更改为
Update
,这样可以解决看起来“不稳定”的问题


如果这不起作用,请告诉我,我会寻找其他可能的原因。

FixedUpdate
中设置变换的位置肯定是一个危险信号,尤其是当您报告变换“不稳定”时。与显示的帧相比,固定更新以不规则的间隔发生。这是因为物理学需要使用固定的时间步长进行更新。这种情况的原因超出了这个问题的范围

长话短说,试着将
FixedUpdate
更改为
Update
,这样可以解决看起来“不稳定”的问题


如果这不起作用,请告诉我,我将查找其他可能的原因。

如果使用Rigidbody2D移动角色,请确保将其Interpolate属性设置为“Interpolate”。这应该可以解决问题。

如果使用Rigidbody2D移动角色,请确保将其Interpolate属性设置为“Interpolate”。这应该可以解决问题。

我已将FixedUpdate更改为Update,但看起来有些不稳定。实际上,我并不担心相机对角色的移动。我关于角色上相机旋转的问题(非常急促)好的,所以我找到了问题所在。你滑得不好。Slerp函数调用的第三个参数是起点和终点之间的比率。例如,如果要移动到传递给函数的第一个四元数和第二个四元数之间的中间方向,则应将值
0.5f
作为第三个参数传递给函数。哦!。我检查了我的游戏。最初,当我的玩家开始游戏时,旋转Z为0。当我向右滚动时,Z是360(这是相机抖动的时候),开始下降。我认为旋转Z的突然变化产生了抖动相机只有当旋转Z为0时,开关旋转Z为360,相反,产生抖动相机如何修复:(我已将FixedUpdate更改为Update,但看起来很不稳定。实际上,我并不担心相机向角色的移动。我的问题是相机在角色上的旋转(非常不稳定)好的,我已经找到了问题所在。您没有正确地滑动。Slerp函数调用的第三个参数是起点和终点之间的比率。例如,如果您希望移动到传递给函数的第一个四元数和第二个四元数之间的中间方向,您将传递f将值
0.5f
作为第三个参数移动到函数中。哦!我已经检查了我的游戏。最初,当我的玩家开始游戏时,旋转Z为0。当我滚动直角时,Z为360(这是相机抖动的时候)然后开始下降。我认为旋转Z的突然变化产生了抖动相机只有旋转Z为0时,开关旋转Z为360,相反,产生抖动相机如何解决:(