目前我正在Unity中进行shell抛掷项目。 shell在Blender中制作并在Unity中导入。我将一个盒子对撞机连接到外壳上。
现在,当我将随机力施加到外壳上进行翻转时,当头部(面朝上)或尾部(面朝下)的结果发生时,它有时会处于垂直向上位置。
我尝试过改变轴,增加重力。但这些解决方案都没有奏效。
我现在所做的是当外壳落地后处于静止位置时,我将外壳旋转90度 - 但这不是一个很好的解决方案,因为它很慢并且需要时间来检查外壳是否有外壳是休息还是不休息。
我正在寻找更好的主意,以便shell应该只处于头部或尾部状态。
答案 0 :(得分:5)
如果你的炮弹使用了一个箱式对撞机,你将会遇到这种有问题的情况,翻转的炮弹有时最终会侧身坐着,而不是面朝上或朝下。
在这种情况下,我建议使用Capsule Colliders,它是圆顶顶部和底部的圆柱形碰撞器。如果胶囊对撞机落在两端,它会从侧面掉落:
然而,一个胶囊对撞机还不够 - 否则,炮弹在翻倒后会开始滚动。我建议2或3,以十字架为导向,使得它们的尖端对应于壳体的两侧:
现在,如果贝壳落在任何一侧,它将翻倒到十字架的一个面上 - 面朝上或面朝下。要将胶囊碰撞器添加到GameObjects,只需单击Add Component,然后选择Physics>胶囊对撞机。然后修改属性以使它们进入所需位置:
您选择的方向应该是X轴和Z轴。一旦你有正确的方向,改变中心值,将对撞机移动到正确的位置,以穿过外壳。然后,改变对撞机的半径以影响十字架的厚度,并改变高度,使它们的尖端与外壳的边缘对齐。
希望这有帮助!如果您有任何问题,请告诉我。