Unity3d 如何在基于瓷砖的物理(Unity2D物理)中避免边缘碰撞?

Unity3d 如何在基于瓷砖的物理(Unity2D物理)中避免边缘碰撞?,unity3d,game-physics,physics-engine,Unity3d,Game Physics,Physics Engine,我正在开发一款基于物理的2D侧滚游戏 此游戏的地图是根据从文本文件读取的基于瓷砖的系统创建的,并在游戏上创建块来绘制关卡。使用物理重力的某些对象需要在一起放置的多个块的截面上“滑动”(如地板,但由于基于瓷砖的系统,由不同块构建) 即使块在“数学上”一个接一个地放置,因为每个块都有自己的BoxCollizedR2D,物理引擎有时仍会检测“边”,以及应该在多块部分滑动的对象(也有一个BoxCollizedR2D和一个RigidBody2D)只是疯狂地从表面反弹(我假设是因为边/边碰撞) 我尝试过添加

我正在开发一款基于物理的2D侧滚游戏

此游戏的地图是根据从文本文件读取的基于瓷砖的系统创建的,并在游戏上创建块来绘制关卡。使用物理重力的某些对象需要在一起放置的多个块的截面上“滑动”(如地板,但由于基于瓷砖的系统,由不同块构建)

即使块在“数学上”一个接一个地放置,因为每个块都有自己的BoxCollizedR2D,物理引擎有时仍会检测“边”,以及应该在多块部分滑动的对象(也有一个BoxCollizedR2D和一个RigidBody2D)只是疯狂地从表面反弹(我假设是因为边/边碰撞)

我尝试过添加一个小的边半径,但实际上不起作用。有没有什么方法可以让我轻松地将这些块链接在一起,或者让物理引擎无法意识到它们的存在

我附上4张图片,让一切都更容易理解和清楚:

  • 地板砖BoxR2D检查器属性
  • 移动对象BoxCollider2D和RigidBody2D属性
  • 游戏截图(移动的物体站在由不同独立块组成的“地板”上;请注意,精灵是圆形的,与物体相连的盒子R2D不是圆形的)
  • 编辑器上的游戏屏幕截图,突出显示了不同的块,以显示它们的BoxCollizer2D框(假定)是如何重叠的,这不应该为移动对象留下任何要碰撞的边缘
  • 提前谢谢


    我感觉到了你,因为我最近遇到了同样的鬼缝现象。一个建议,如果没有人提出更好的建议:从瓷砖预制件中移除框碰撞器。然后在Start()期间,分析块结构并使用跨越相应多行或列的BoxCollider添加自定义(不可见、无网格渲染器)游戏对象。这样可以消除碰撞。(但并非在所有情况下都很好,例如,如果你有一块只在印刷机上才能抬起的桥砖会怎么样。)谢谢Philipp,我已经开始实施,而且似乎它正在朝着正确的方向发展!:)我感觉到了你,就像我最近遇到的同样的鬼缝现象。一个建议,如果没有人提出更好的建议:从瓷砖预制件中移除框碰撞器。然后在Start()期间,分析块结构并使用跨越相应多行或列的BoxCollider添加自定义(不可见、无网格渲染器)游戏对象。这样可以消除碰撞。(但并非在所有情况下都很好,例如,如果你有一块只在印刷机上才能抬起的桥砖会怎么样。)谢谢Philipp,我已经开始实施,而且似乎它正在朝着正确的方向发展!:)