高速移动的物体的碰撞穿透的问题的解决方法

来源:互联网 发布:网络文学评论平台 编辑:程序博客网 时间:2024/06/05 09:02

物体的移动跟碰撞的检测可以说是游戏开发者最常见的问题,当在开发测试的过程中可能为出现以下情况(以墙壁跟汽车为例,汽车撞墙壁):
1.墙壁碰撞体太薄,汽车直接穿过墙壁;
2.汽车速度太快,直接穿过墙壁。

以上的问题都可以用两幅图来说明:
开始移动(向右):
这里写图片描述

一帧过后:
这里写图片描述

在这里说一下,Unity的对碰撞体的碰撞检测是需要时间的,上面的原因是因为在执行一次碰撞检测之前,移动的范围过大,导致此时碰撞穿透问题。

解决方法:在移动时先判断移动后的位置与现在的位置作射线检测,若有碰撞则移动失败否则移动成功。

图解:
这里写图片描述

因为这里的代码比较简单就不列出来,这里主要讲的是一种比较简单的解决方式。

那么,这篇博文就到这里,我们下期再见!