Unity Breaker:两块砖之间击球

问题描述 投票:2回答:2

我正在Unity中制作2D Brick Breaker游戏。

当球碰到两块砖之间时,我遇到了一个问题。我将BoxCollider2D附加到所有积木,并将CircleCollider2D附加到球。当球击中2个相邻的砖块之间时,球反弹的方向与击中砖块边缘的方向相同。两者之间没有边缘,但是两个相邻的砖块形成连续的表面。因此,球应该从表面反弹(沿其他方向),而不是反弹回来。

enter image description here

任何人都知道有解决此问题的解决方案吗?我在Unity Physics论坛上问了这个问题,但没有得到任何答案,因此请检查这里是否有问题。

谢谢,Mukul

unity3d unity5
2个回答
0
投票

我猜这可能是问题所在:

当球用强大的力击中砖块时,即使砖块的质量很重,也有可能使其中一块砖块移动很小的距离。

此运动可能会导致表面不平整,这就是为什么球向同一方向弹回的原因。

尝试在每块积木上添加一个刚体组件(如果尚未完成),并将其isKinematic属性设置为true。

让我知道这是否可以解决。


0
投票

方式1:

在墙壁上使用一个盒子碰撞器,但不要在每块砖上都使用。这将解决您的问题,并将优化您的项目。

方式2:

您需要构建墙体程序,在这种情况下,对撞机之间必须没有空格。这必须解决该问题。

方式3:

使您自己碰壁逻辑。

OnColliderEnter,您需要获取球的速度。在OnColliderEnd上,您需要手动设置速度。


0
投票

我在gamedev.tv上找到了一些答案。很好,伙计。

gamedev.tv

© www.soinside.com 2019 - 2024. All rights reserved.