我是Unity的新手,我正在做一个小例子。实际上我有一个用我的箭头键移动的立方体。现在我在路上有墙,我希望我的物体撞到墙上,但它穿过了墙。
我也使用过此代码,但没有结果:
http://www.unifycommunity.com/wiki/index.php?title=DontGoThroughThings
答案 0 :(得分:1)
一般的想法是跟踪物体的最后位置,然后当它们移动时,将光线从当前位置投射到最后位置。检查光线是否有碰撞,如果有的话,你已经穿过了一个物体。
如果您已经浏览了另一个对象,请将当前对象设置为碰撞报告的位置。下一帧将触发碰撞事件。
您提供的链接实际上是这样做的。
答案 1 :(得分:1)
如果您正在做类似的事情:
transform.velocity.x += speed * Time.deltaTime;
这对碰撞不起作用,因为你实际上并没有碰到任何东西,你只是每帧固定数量的传送。这使您实际传送对象的INSIDE。