C# 如何在二维对象上使用addforce移动它

C# 如何在二维对象上使用addforce移动它,c#,unity3d,C#,Unity3d,我需要使用箭头键左右移动一个2d球。然而,当我点击右边的一个球时,球有时会向左移动,依此类推。。。是的,我用Rigibody2D来做这个 if (Input.GetKeyDown("right")) { bola.AddForce(transform.right * velocity,ForceMode2D.Force); } if (Input.GetKeyDown("left")) { bola.AddForce(-tran

我需要使用箭头键左右移动一个2d球。然而,当我点击右边的一个球时,球有时会向左移动,依此类推。。。是的,我用Rigibody2D来做这个

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

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

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

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

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

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

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

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

两次?没有人,显然在c#中没有变换。左,所以我必须在它上面加一个-。
Vector3。右
可能?两次?没有人,显然在c#中没有变换。左,所以我必须在它上面加一个-,向量3。右,可能吧?因为变换与物体的位置和方向有关。向球体添加力时,球体开始旋转,旋转也会发生变化。如果旋转到远处,在其局部坐标中,右侧变为左侧,左侧变为右侧。因为变换与对象的位置和方向有关。向球体添加力时,球体开始旋转,旋转也会发生变化。如果旋转到远处,则在其局部坐标中,“右”变为“左”,而“左”变为“右”。