防止物体侧放; 确保它始终面朝上或面朝下

Sud*_*rya 2 unity-game-engine game-physics

目前我在Unity做一个shell抛掷项目.shell在Blender中制作并在Unity中导入.我将一个盒子对撞机连接到外壳上.

现在,当我将随机力施加到外壳上以使其翻转时,当头部(面朝上)或尾部(面朝下)的结果发生时,它有时会停留在垂直向上位置.

我试过改变轴,增加重力.但这些解决方案都没有奏效.

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

我正在寻找更好的主意,以便shell应该只处于头部或尾部状态.

Ser*_*ite 5

如果你的炮弹使用了一个箱式对撞机,你将会遇到这种有问题的情况,翻转的炮弹有时最终会侧身坐着,而不是面朝上或朝下.

在这种情况下,我建议使用Capsule Colliders,它是圆顶顶部和底部的圆柱形碰撞器.如果胶囊对撞机落在任何一端,它将从侧面落下:

在此输入图像描述

然而,一个胶囊对撞机是不够的 - 否则,炮弹在翻倒后会开始滚动.我建议2或3,以十字形为导向,使得它们的尖端对应于外壳的两侧:

在此输入图像描述

现在,如果炮弹落在任何一侧,它将翻倒到十字架的一个面上 - 无论是面朝上还是面朝下.要将胶囊碰撞器添加到GameObjects,只需单击Add Component,然后选择Physics> Capsule Collider.然后修改属性以使它们进入所需位置:

在此输入图像描述

您选择的方向应该是X轴和Z轴.一旦你有正确的方向,改变中心值,将对撞机移动到正确的位置,以穿过外壳.然后,改变对撞机的半径以影响十字架的厚度,并改变高度,使它们的尖端与外壳的边缘对齐.

希望这可以帮助!如果您有任何疑问,请告诉我.