问题描述
当物体上下移动时,有时会停留在地板上。这是什么原因呢?而且我使用的是RigidBody2D,我的代码在FixedUpdate()方法中也使用了盒对撞机。
我的意思是,当我几次玩游戏时,它有时会发生,有时却不会。如果您能帮助我,我将非常高兴。提前致谢。 因此,让我更详细地说明我想告诉您的内容,我想借助代码上下移动障碍物,也就是说,障碍物在碰到每个地板或天花板时会改变方向,并且它们会上下移动,也就是说,当它们碰到每个天花板或地板时,它们的方向会改变。但是有时障碍物会在需要改变方向时粘在天花板或地板上
解决方法
我只是为每个游戏对象设定一个固定点来改变方向,而不是检查与刚体的碰撞。
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;
}
,
创建摩擦力为0且弹跳度为0的 2D物理材料,并将其附加到玩家的对撞机上。