所以我正在使用unity3d,并且我有一个AI。它具有一个始终面对角色的不可见矩形,如果AI与角色之间的距离小于最大距离,并且不可见矩形没有碰到障碍物,则AI将追逐角色。如果同时触摸AI(玩家和障碍物),则AI将继续巡逻。但是问题是,有时如果玩家处于某个位置,就会发生这种情况:
AI没有碰到障碍物,因此AI向玩家移动。然后,AI碰到了身后的障碍。因此,他触摸了球员和障碍物,并被告知后退。他向后移一点时,就没有碰到障碍物,并且小于最大距离并移回了玩家。这会永远重复,从而产生令人讨厌的连续循环。
在回答使矩形变短之前,我需要告诉你:我已经尝试过了,由于矩形所成的角度,矩形不能检测到所有碰撞。
更多信息:
所以-我该如何解决?我真的很感谢任何答案。
答案 0 :(得分:1)
Unity具有用于AI的内置导航系统。对于您来说,这可能是一个更好的长期解决方案。您可以设置检测范围等,它可以自动很好地检测障碍物。
这里有一个很棒的教程: https://unity3d.com/learn/tutorials/s/navigation