Unity 2D - 速度和弹性物理 material 如何导致球在每次击中物体时改变方向?

Unity 2D - How does velocity and bouncy physic material causes the ball to change direction everytime it hits something?

所以,我正在关注有关如何制作乒乓球的 YouTube 教程。我理解并学到了很多东西,但有一点是他制造了球和它的动作,但他没有解释。他用

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

这个球还附有一个 rigidbody2d,一个附有物理 material 的圆形对撞机。物理 material 的摩擦力为 0,弹跳力为 1。这不知何故使球从物体上反弹。

谁能给我解释一下它是如何工作的?

非常感谢!

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

    简单的设置对象的初始velocityxy方向

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

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

Physic Materials:

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

  • bounciness 1 表示碰撞时物体不会失去任何速度,而是以相应角度以 100% 的速度反弹回来。 -> 这是根据物体的撞击角度等改变物体方向的部分

这一切都由 Unity 的 PhysicsEngine 本身处理,因此您不必担心。