[通过网格碰撞器解决了X和Y上的3D运动

问题描述 投票:0回答:1

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

这意味着我需要将所有运动限制在X和Y轴上。我为小行星和玩家都创建了运动,并且一切正常。所有移动均使用相应AddForce组件上的RigidBody完成。

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

我尝试了什么:

  1. RigidBody的冻结限制
  2. Update功能中手动重设Z

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

所以问题是

Mesh Colliders进行精确碰撞时,将基于物理学的运动仅强制沿X和Y轴移动的最佳方法是什么?

enter image description here

unity3d collision
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.