【问题标题】:How do I stop two gameobjects from going through each other on unity3d如何阻止两个游戏对象在unity3d上相互通过
【发布时间】:2016-08-05 06:07:38
【问题描述】:

我已经尝试过取消选中矩阵框和移除球体对撞机。我遇到的问题是游戏对象不会停止相互穿过。我不知道发生了什么。我有一张正在发生的事情的照片:enter image description here

【问题讨论】:

  • 为什么要移除球体对撞机?有多少对撞机?如果您勾选Trigger,它会使其具有穿透性。存在与速度相关的穿透因子。高速有时会忽略碰撞。你的 npc 可能需要多个对撞机。
  • 你是如何移动你的游戏对象的?

标签: unity3d unity5 gameobject


【解决方案1】:

首先,不要移除碰撞器并确保它们没有设置为 Is Trigger(这使得碰撞器可穿透)。另外,您正在使用球体对撞机来处理相当复杂的网格,所以我建议使用 MeshCollider,它会根据网格生成它。

其次,重新检查移动对象的方式。如果施加的力过大,它可能会撞穿另一个对撞机而无法摆脱它(想象一下,您突破了障碍物并且在其中您无法获得足够的速度再次突破它)。如果您使用 AddForce() 并且不增加 transform.velocity,则可能会发生这种情况。

第三,是什么控制了这些游戏对象?播放器还是 NavMeshAgent?因为,我认为,如果它们由 AI (NavMeshAgent) 控制,它们应该在路径中相互避开并且不应该发生碰撞。但是,我可能在这个问题上错了。

【讨论】:

  • 我没有导航网格,一切都已检查。我有一个脚本。我会尝试导航网格。
  • 我认为避免这种情况的最简单方法是在对象几何不均匀时使用meshcollider,否则避免使用meshcollider,如果您使用meshcollider,请记住,其中一个应该在meshcollider组件上有刚体和凸面选项应该打勾
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多