首页 > 解决方案 > [已解决 - 使用网格碰撞器在 X 和 Y 上进行 3D 运动

问题描述

我正在使用自上而下的相机制作 3D 小行星克隆。这个设置是静态的,不会改变(所以不,我不想将项目转换为 2D 游戏)。

这意味着我需要将所有运动限制在 X 和 Y 轴上。我为小行星和玩家创造了运动,一切都很好。所有动作都是AddForce在各自的RigidBody组件上完成的。

问题是我开始处理碰撞。我使用Mesh Collider组件来获得良好而精确的“触摸反应”。问题是当发生这样的碰撞时,新的运动矢量的 Z 值不为 0。这是一个问题,因为对象将开始在 Z 轴上移动。

我尝试了什么:

  1. 冻结刚体上的约束
  2. Update在功能中手动重置 Z

第一个解决方案(冻结约束)不起作用,第二个也没有(此外,第二个似乎很混乱)

所以问题是

在使用精确碰撞时,将基于物理的运动仅强制到 X 和 Y 轴的最佳方法是什么Mesh Colliders

在此处输入图像描述

标签: unity3dcollision

解决方案


你确定你正确使用了位置限制吗?您可以检查以使用文档中的向量设置限制。https://docs.unity3d.com/ScriptReference/RigidbodyConstraints.FreezePosition.html 看看它是如何完成的。如果没有,请分享您在编辑器中尝试的刚体限制的代码或屏幕截图


推荐阅读