防止物体侧着着地;确保它总是面朝上或面朝下
Preventing an object from landing on its side; ensuring it always lands face-up or face-down
目前正在Unity中做一个shell折腾的项目。 shell 在 Blender 中制作并在 Unity 中导入。我在 shell.
上附加了一个盒子对撞机
现在,当我对 shell 施加随机力来翻转它时,它有时会停留在垂直向上的位置,而结果是正面(正面朝上)或反面(正面朝下)应该已经发生了。
我试过改变轴,增加重力。但是 none 这些解决方案有效。
我现在所做的是当 shell 着陆后处于静止位置时,我将 shell 旋转 90 度 - 但这不是一个很好的解决方案,因为它是慢并且需要时间来检查 shell 是否已经停止。
我正在寻找更好的主意,这样 shell 应该只停留在正面或反面状态。
如果你为你的 shell 使用盒子碰撞器,你最终会遇到这种有问题的情况,翻转的 shell 有时会侧身坐着,而不是 face-up 或 face-down.
在这种情况下,我建议使用 Capsule Colliders,它们是具有圆形顶部和底部的圆柱形碰撞体。如果胶囊对撞机落在任何一端,它就会侧翻:
但是,一个胶囊对撞机是不够的 - 否则,shell 会在它翻倒后开始滚动。我建议 2 或 3,以十字形排列,使它们的尖端对应于 shell:
的两侧
现在,如果 shell 落在它的任何一边,它就会翻倒在十字架的一个面上 - face-up 或 face-down。要将胶囊碰撞器添加到您的游戏对象,只需单击添加组件,然后单击 select Physics > Capsule Collider。然后修改属性,让它们进入想要的位置:
您选择的方向应该是X-Axis和Z-Axis。方向正确后,更改“中心”值以将碰撞器移动到正确的位置以穿过 shell。然后,改变碰撞器的半径以影响十字的厚度,并改变高度使它们的尖端与 shell.
的边缘对齐
希望对您有所帮助!如果您有任何问题,请告诉我。
目前正在Unity中做一个shell折腾的项目。 shell 在 Blender 中制作并在 Unity 中导入。我在 shell.
上附加了一个盒子对撞机现在,当我对 shell 施加随机力来翻转它时,它有时会停留在垂直向上的位置,而结果是正面(正面朝上)或反面(正面朝下)应该已经发生了。
我试过改变轴,增加重力。但是 none 这些解决方案有效。
我现在所做的是当 shell 着陆后处于静止位置时,我将 shell 旋转 90 度 - 但这不是一个很好的解决方案,因为它是慢并且需要时间来检查 shell 是否已经停止。
我正在寻找更好的主意,这样 shell 应该只停留在正面或反面状态。
如果你为你的 shell 使用盒子碰撞器,你最终会遇到这种有问题的情况,翻转的 shell 有时会侧身坐着,而不是 face-up 或 face-down.
在这种情况下,我建议使用 Capsule Colliders,它们是具有圆形顶部和底部的圆柱形碰撞体。如果胶囊对撞机落在任何一端,它就会侧翻:
但是,一个胶囊对撞机是不够的 - 否则,shell 会在它翻倒后开始滚动。我建议 2 或 3,以十字形排列,使它们的尖端对应于 shell:
的两侧现在,如果 shell 落在它的任何一边,它就会翻倒在十字架的一个面上 - face-up 或 face-down。要将胶囊碰撞器添加到您的游戏对象,只需单击添加组件,然后单击 select Physics > Capsule Collider。然后修改属性,让它们进入想要的位置:
您选择的方向应该是X-Axis和Z-Axis。方向正确后,更改“中心”值以将碰撞器移动到正确的位置以穿过 shell。然后,改变碰撞器的半径以影响十字的厚度,并改变高度使它们的尖端与 shell.
的边缘对齐希望对您有所帮助!如果您有任何问题,请告诉我。