Unity 2D-速度和弹性物理材料如何使球每次击中东西时都会改变方向?

时间:2019-01-04 05:12:30

标签: unity3d bounce pong

因此,我正在关注有关制作乒乓球的YouTube教程。我了解并学到了很多东西,但是有一点他使球和球运动了,但他没有解释。他用

 
void Start() 
{
    rb.velocty = new Vector2(speed, speed);
}

该球还附有刚体2d,这是一个已附加物理材料的圆形对撞机。物理材料的摩擦系数为0,弹跳系数为1。这使球从物体上反弹。

有人可以向我解释它的工作原理吗?

非常感谢!

1 个答案:

答案 0 :(得分:3)

  • rb.velocity = new Vector2(speed, speed);
    

    仅在xy方向上设置对象的初始velocity

    由于他们在向量定义中使用x = y = speed,因此球将以45°角对角移动。

    更改这些值以获取不同的角度或速度。

请参见Physic Materials

  • friction = 0表示该对象不会减速。大于0的值会随着时间的推移降低对象的速度。

  • bounciness 1意味着在碰撞时,对象不会失去任何速度,而是以相应的角度以其速度的100%反弹。 ->这是根据物体的撞击角度等改变物体方向的部分。

这全部由Unity的PhysicsEngine本身处理,因此您不必为此担心。