如何在2D对象上使用addforce移动它

时间:2019-04-23 13:29:12

标签: c# unity3d

我需要左右箭头键来移动2D球。但是,当我单击右一个球时,球有时会移到左侧,依此类推...而且是的,我正在使用Rigibody2D来做到这一点。

 if (Input.GetKeyDown("right"))
    {
        bola.AddForce(transform.right * velocity,ForceMode2D.Force);
    }

    if (Input.GetKeyDown("left"))
    {
        bola.AddForce(-transform.right * velocity,ForceMode2D.Force);
    }

1 个答案:

答案 0 :(得分:2)

也许是由于您施加的力使球旋转,因此您使用了局部右旋,方向随旋转而变化。您应该尝试停用刚体旋转,或使用全局方向。

if (Input.GetKeyDown("right"))
{
    bola.AddForce(Vector2.right * velocity,ForceMode2D.Force);
}

if (Input.GetKeyDown("left"))
{
    bola.AddForce(-Vector2.right * velocity,ForceMode2D.Force);
}