首页 > 解决方案 > Unity地形对撞机间歇性丢失碰撞

问题描述

我正在尝试使用地形工具。该应用程序有一个代表四轴飞行器的立方体 (0.2x0.2x0.05) 飞来飞去。它有一个对撞机(未设置为触发器)和刚体。它由 addforce() 等控制 - 即它的位置和旋转不会直接改变。

它在由基元(立方体、球体等)构建的场景中非常可靠地工作。

我现在正在试用 Unity 地形工具包(我正在使用编辑器 2019.3),并有一个带有岩石、碎石和沙层的简单测试地形(500x500m)。

我发现有时当它直接飞入地形只是为了检查会发生什么时,它会直接穿过。通常它会发生碰撞,但并非总是如此,也许是 50:50。

FixedUpdate() 速率是标准的 20mS。

我不确定我是否错过了任何步骤?我只是在地形上使用所有默认设置。它有标准的网格对撞机。它不只是作为触发器或任何东西设置的(无论如何,大多数情况下它都可以正常工作)。

这是我做过/没有做过的事情,还是这是一个已知问题 - 有解决方法吗?

停止按下:测试仍在进行中,但感觉这可能与刚体中选择的碰撞类型有关 - 请参阅下面的答案。

标签: c#unity3dterrainmesh-collider

解决方案


测试仍在进行中,但很明显这与刚体中选择的碰撞类型有关。默认值是离散的,但是 Unity 文档中有信息表明,对于快速移动的物体,可能需要使用连续的(以一定的 CPU 成本)以避免错过一些碰撞。

自从类型更改为连续后,问题就没有发生过。毕竟,四轴飞行器是一个移动速度非常快的机身,时速高达 150 公里,而且很小。


推荐阅读