我在我的避难场所准备游戏中添加了一只小猫。 我没有使用 NavMesh,而是实现了一个系统,代码在检测到障碍物时会尝试找到一个反射角度;如果找不到合适的角度,它会选择一个新的目标点。然而,之前的小猫会因为无法绕过宽大的物体而被卡在原地——即使刚刚出生——也会这样。 我扩展了初始的0°/±30°/±60°的反射角度,包括±120°/±150°/180°;这样小猫就可以在死胡同中转身并退后,而不是忽视它后面的一条路。另外,我为小猫编程,保持它选择的绕道方向一段时间,使其能够沿着宽大的家具的侧面滑行,直到找到一个角落,而不是由于每一帧的重新评估而不断切换方向。 如果小猫被卡住,我还实现了一个系统,它在扩散的同心圆中对周围区域进行采样,以找到一个开放的位置并直接将猫移位到那里。现在它移动得很自然。