Unity3d 防止物体侧面着地;确保其始终面朝上或面朝下落地

Unity3d 防止物体侧面着地;确保其始终面朝上或面朝下落地,unity3d,game-physics,Unity3d,Game Physics,目前我正在做一个统一抛壳的项目。外壳采用搅拌机制作,统一进口。我在外壳上安装了一个单盒对撞机 现在,当我对壳施加随机力来翻转它时,它有时会处于垂直向上的位置,当出现头部(面朝上)或尾部(面朝下)的结果时 我试着改变轴,增加重力。但这些解决方案都不起作用 我现在所做的是,当外壳落地后处于静止位置时,我将外壳旋转90度——但这不是一个很好的解决方案,因为它很慢,需要时间来检查外壳是否已经静止 我在寻找更好的方法,使壳只能处于正面或反面的状态。如果对壳使用盒式对撞机,最终会出现这种问题,翻转的壳有时会

目前我正在做一个统一抛壳的项目。外壳采用搅拌机制作,统一进口。我在外壳上安装了一个单盒对撞机

现在,当我对壳施加随机力来翻转它时,它有时会处于垂直向上的位置,当出现头部(面朝上)或尾部(面朝下)的结果时

我试着改变轴,增加重力。但这些解决方案都不起作用

我现在所做的是,当外壳落地后处于静止位置时,我将外壳旋转90度——但这不是一个很好的解决方案,因为它很慢,需要时间来检查外壳是否已经静止


我在寻找更好的方法,使壳只能处于正面或反面的状态。

如果对壳使用盒式对撞机,最终会出现这种问题,翻转的壳有时会侧向放置,而不是面朝上或面朝下

在这种情况下,我建议使用,它是顶部和底部均为圆形的圆柱形碰撞器。如果太空舱对撞机在两端着陆,它将从侧面坠落:

然而,一个胶囊对撞机是不够的,否则,外壳会在它倒下后开始滚动。我建议2或3,以十字为方向,使其尖端对应于外壳的侧面:

现在,如果贝壳落在它的任何一边,它会倒在十字架的一个面上——要么面朝上,要么面朝下。要将胶囊碰撞器添加到游戏对象,只需单击“添加组件”,然后选择“物理>胶囊碰撞器”。然后修改属性,使其处于所需位置:

您选择的方向可能应该是X轴和Z轴。获得正确的方向后,请更改“中心”值以将碰撞器移动到正确的位置,以穿过壳。然后,改变碰撞器的半径以影响十字的厚度和高度,使其尖端与壳的边缘对齐


希望这有帮助!如果您有任何问题,请告诉我。

您是否在统一中使用物理学?我想缩小对撞机的范围会有所帮助。此外,在Blender中导出模型时,可以指定轴的映射方式。是的,我使用的是物理。我制造了最小可能的对撞机。没用。你能展示一下你的意外行为吗?这可能有助于消除关于问题所在的不确定性。在这张图中,蓝色圆圈是好的,但红色圆圈不是好的@有趣的是,这些看起来更像贝壳而不是硬币。不管怎样,你们有什么样的对撞机?这就是他们最终着陆的方式吗?你想阻止这种结果吗?这很有效,非常感谢,但碰撞点很可怕,即物体正在穿透墙壁,我想我不能并排添加框碰撞器。好的解决方案是什么?太好了!真高兴我能帮上忙。@SudeepAcharya嗯,穿墙?碰撞器是否与对象的边缘对齐以尽可能接近其形状?他们现在的安排是什么样的?