Unity3d 物体移动时会粘在地板上

Unity3d 物体移动时会粘在地板上,unity3d,game-development,rigid-bodies,Unity3d,Game Development,Rigid Bodies,当物体上下移动时,有时会卡在地板上。这是什么原因?我在fixeUpdate()方法中使用了RigidBody2D和我的代码,我还使用了box collider 我的意思是,当我开始比赛几次时,有时会发生,有时不会。如果你能帮忙,我将非常高兴。提前谢谢。 让我更详细地解释一下我想更详细地告诉你们的是,我想在代码的帮助下上下移动障碍物,也就是说,当障碍物碰到每一层或每一层天花板时,它们会改变方向,并且会上下移动,也就是说,当它们碰到每一层或每一层天花板时,他们的方向会改变,但有时当他们需要改变方向时

当物体上下移动时,有时会卡在地板上。这是什么原因?我在fixeUpdate()方法中使用了RigidBody2D和我的代码,我还使用了box collider

我的意思是,当我开始比赛几次时,有时会发生,有时不会。如果你能帮忙,我将非常高兴。提前谢谢。 让我更详细地解释一下我想更详细地告诉你们的是,我想在代码的帮助下上下移动障碍物,也就是说,当障碍物碰到每一层或每一层天花板时,它们会改变方向,并且会上下移动,也就是说,当它们碰到每一层或每一层天花板时,他们的方向会改变,但有时当他们需要改变方向时,障碍物会粘在天花板或地板上


创建一个具有0摩擦力和0反弹的物理材质2D,并连接到玩家的碰撞器。

我只需为每个游戏对象设置一个固定点来改变方向,而不是检查与刚体的碰撞

void FixedUpdate() {
    if(obstacle.transform.position.y + obstacle.transform.localScale.y > 
    upperPointOfReturn) 
    {
        obstacle.ChangeDirection();
    }

    if(obstacle.transform.position.y - obstacle.transform.localScale.y < 
    lowerPointOfReturn) 
    {
        obstacle.ChangeDirection();
    }

    obstacle.transform.position = new Vector2(
    obstacle.transform.position.y 
    + velocity* Time.deltaTime * direction, 0
    );
   
}

void ChangeDirection() {
    direction *= -1;
}
void FixedUpdate(){
if(障碍物.transform.position.y+障碍物.transform.localScale.y>
上限(返回点)
{
障碍。改变方向();
}
if(障碍物.transform.position.y-障碍物.transform.localScale.y<
降低成本(成本)
{
障碍。改变方向();
}
障碍物.transform.position=新矢量2(
障碍。变换。位置。y
+速度*Time.deltaTime*方向,0
);
}
void ChangeDirection(){
方向*=-1;
}

请在问题中加入代码的相关部分,以帮助人们了解可能出现的问题。如果您录制了一段视频并添加了链接,也会有所帮助。现在的问题是很难理解你的意思。我编辑了这个问题,你能帮我回答一下吗?谢谢,我认为这会有帮助,但速度是我的刚体速度。上面的代码只是一个例子,你可以在没有速度的情况下实现一个移动的物体刚体。如果您提供更多信息,我可以为您制定更好的代码解决方案。如果你的物体向右移动,就用x代替y。但请确保您的本地比例是正确的。(对象的长边必须是局部比例)