抖动字符控制器

时间:2019-09-19 10:24:41

标签: unity3d

我制作了一个角色,该角色使用相机作为参考框架来知道相机必须朝哪个方向移动

movement = Quaternion.AngleAxis(sharpCam.transform.rotation.eulerAngles.y, Vector3.up) * movement;

这通常可以正常工作,但是当我尝试向相机添加平滑效果时,播放器就会变得抖动(根据我的假设,上面的代码)

这是我的凸轮平滑代码:

    if (rotProg < 1 && rotProg >= 0)
    {
        rotProg += Time.deltaTime * 15;
        Quaternion rotStart = transform.rotation;
        rotEnd = Quaternion.Euler(y, x, 0);
        rot = Quaternion.Lerp(rotStart, rotEnd, rotProg);
    }

    Vector3 pos = rot * new Vector3(0.0f, 0.0f, -walkDist) + Target.position;
    pos.y += height;
    transform.rotation = rot;
    transform.position = Vector3.SmoothDamp(transform.position, pos, ref velocity, smoothTime);

Gif of the issue

1 个答案:

答案 0 :(得分:1)

修复此问题,问题在于角色的移动代码,重力代码位于固定更新而不是更新中。