【问题标题】:unity2D Moving to a fixed object causes shakingunity2D 移动到固定物体会导致晃动
【发布时间】:2019-02-25 19:46:49
【问题描述】:

请注意gif:

有两个对象。

左圆对象 = 圆 colider2D + 刚体2D(冻结位置Y,冻结旋转Z,移动脚本)

移动脚本:

void Update()
{
    if(Input.GetAxisRaw("Horizontal") > 0){
        transform.Translate(Vector2.right * 2f * Time.deltaTime);
    }

}

右方形对象 = 方形 colider2D + 刚体 2D(冻结位置 Y,冻结位置 X,冻结旋转 Z)

将左侧物体向右移动,当两个物体相遇时,左侧物体左右晃动。我不知道为什么。 我希望这两个对象不要重叠。

我怎样才能避免这个问题?

【问题讨论】:

    标签: unity3d


    【解决方案1】:

    您正在使用 Transform 来移动非运动刚体,您不应该这样做。要么使用AddForce() 移动你的对象,要么使用运动学刚体和翻译,但这需要更多的工作,因为如果你想要干净和平滑的东西,你需要自己管理碰撞。

    【讨论】:

    • 如果你确实使用了 AddForce,请在 FixedUpdate 中进行,这是你应该进行所有物理操作的地方,而不是 Update(仅用于输入捕获)
    猜你喜欢
    • 2022-06-10
    • 2017-08-04
    • 2019-08-06
    • 1970-01-01
    • 2015-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多