FPS碰撞检测和移动


Answers:


12

实体通常由相对于世界几何体(或简化的碰撞网格)的胶囊(两端带有球体的圆柱体)表示,以进行世界范围的碰撞。

楼梯通常不会与看不见的坡道发生碰撞,或者在一定高度以下时,通常会因冲突解决的副作用而抬高。(作为步长的一部分,您将获得与运动的互穿,并且分辨率会将其向上弹出作为最近的平面)

我认为这是虚幻3的工作方式,但我可能是错的。我记得在Source中看到一个边界框层次结构,但是我不记得那是否只是为了战斗。无论如何,胶囊既简单又快速


1

在Unity 3D中,最简单的方法是拥有第一人称控制器。通常,如果台阶高度大于台阶偏移量,则角色必须跳起来。但是另一种实现方法是添加一个盒子碰撞器并旋转它,以使角色可以轻松地掠过楼梯,就好像它是坡道一样。


0

布雷迪的答案很好,但是如果您想采用一种怪异的方式,可以将光线投射到地面碰撞几何体上,找出碰撞的三角形,然后使用三角形顶点高度的加权平均值找出地面高度。


如果它是一个大的倾斜三角形怎么办?您无法以某种方式找到射线的交点吗?
Gustavo6046 '18 -10-14

您已经知道飞机上的位置,只需要高度,这就是我指定加权平均值的原因。如果您真的想走得更远,我建议您拿起一本有关碰撞检测的书。这不是学习数学的最佳方式。
BigSandwich

哦耶。加权平均值。我认为我有点误解了。我的错。
Gustavo6046 '18 -10-18
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.