如何移动一个对象,而不通过碰撞器



我正在使用Unity和我正在做一个乒乓游戏。我希望能够移动与鼠标键桨。我曾尝试移动它们的位置,但这当然只是将它们"传送"到对撞机的边缘。我尝试使用addForce(),使刚体固定在x位置,然而,发生的是当球击中桨,它推动它,桨扣回来。所有球的能量都消失了(游戏邦注:在我的游戏中存在重力)。我如何移动这个盒子碰撞器而不让它在移动时重叠在其他盒子碰撞器上?谢谢! !

你的桨应该是一个运动学(IsKinematic参数)刚体(附加的RigidBody2D)碰撞器,而边缘应该只是一个静态碰撞器。但是,你应该在你的脚本中控制桨运动的极限/边缘。

如果你这样做,你的球会自然地从边缘反弹并离开你的球拍。然而,如果你想让球通过边缘,但通知你这样做(例如失去条件),你应该使边缘成为一个静态触发碰撞器(IsTrigger参数)。

以下是不同类型碰撞器之间所有交互的详细列表:http://docs.unity3d.com/Manual/CollidersOverview.html。生成的消息通过两个不同的函数传递:OnTriggerEnter2D和OnCollisionEnter2D。

我发现了一个名为默认最大穿透速度的设置。它在项目设置>物理比;默认最大穿透速度。它的值默认为10。将其更改为100或更高的值,直到游戏对象不通过碰撞器。

最新更新