快速移动的物体穿过其他物体

时间:2011-04-26 09:12:36

标签: collision-detection unity3d

我是Unity的新手,我正在做一个小例子。实际上我有一个用我的箭头键移动的立方体。现在我在路上有墙,我希望我的物体撞到墙上,但它穿过了墙。

我也使用过此代码,但没有结果:

http://www.unifycommunity.com/wiki/index.php?title=DontGoThroughThings

2 个答案:

答案 0 :(得分:1)

一般的想法是跟踪物体的最后位置,然后当它们移动时,将光线从当前位置投射到最后位置。检查光线是否有碰撞,如果有的话,你已经穿过了一个物体。

如果您已经浏览了另一个对象,请将当前对象设置为碰撞报告的位置。下一帧将触发碰撞事件。

您提供的链接实际上是这样做的。

答案 1 :(得分:1)

如果您正在做类似的事情:

transform.velocity.x += speed * Time.deltaTime;

这对碰撞不起作用,因为你实际上并没有碰到任何东西,你只是每帧固定数量的传送。这使您实际传送对象的INSIDE。