我正在Unity中制作2D Brick Breaker游戏。
当球碰到两块砖之间时,我遇到了一个问题。我将BoxCollider2D附加到所有积木,并将CircleCollider2D附加到球。当球击中2个相邻的砖块之间时,球反弹的方向与击中砖块边缘的方向相同。两者之间没有边缘,但是两个相邻的砖块形成连续的表面。因此,球应该从表面反弹(沿其他方向),而不是反弹回来。
任何人都知道有解决此问题的解决方案吗?我在Unity Physics论坛上问了这个问题,但没有得到任何答案,因此请检查这里是否有问题。
谢谢,Mukul
我猜这可能是问题所在:
当球用强大的力击中砖块时,即使砖块的质量很重,也有可能使其中一块砖块移动很小的距离。
此运动可能会导致表面不平整,这就是为什么球向同一方向弹回的原因。
尝试在每块积木上添加一个刚体组件(如果尚未完成),并将其isKinematic属性设置为true。
让我知道这是否可以解决。
方式1:
在墙壁上使用一个盒子碰撞器,但不要在每块砖上都使用。这将解决您的问题,并将优化您的项目。
方式2:
您需要构建墙体程序,在这种情况下,对撞机之间必须没有空格。这必须解决该问题。
方式3:
使您自己碰壁逻辑。
OnColliderEnter,您需要获取球的速度。在OnColliderEnd上,您需要手动设置速度。
我在gamedev.tv上找到了一些答案。很好,伙计。