Unity,让 AI 到 运行 一个变换路径点,还要远离玩家?

Unity, get AI to run to a transform waypoint, but also away from the player?

这是我第一次 post 在这里,如果我做错了什么,我深表歉意,我阅读了指南,希望不要这样!因此,让我更详细地介绍一下。

我目前正在为游戏编写 AI。我需要让 AI 做的是 运行 我在地图上放置的变换航路点(例如逃生),同时也不要选择会让他们 运行 过去的航路点吓到他们的玩家。

我真的不知道从哪里开始。我可以让 AI 运行 远离玩家,但不能到达特定的路点,我可以让 AI 到达特定的路点,但不能同时到达。基本上我所有的寻路都在那里,我只需要一种方法来选择合适的航路点。

任何帮助或至少在正确方向上的一点都会很有帮助。谢谢。

您可能想在 Google 中找到路径规划算法,看看哪些最适合您的要求。

想着想着,势场路径规划算法就想到了。它可以让你设定一个目标,同时避开障碍物(在这种情况下,玩家就是障碍物)。

您可以在这里阅读:http://www.cs.mcgill.ca/~hsafad/robotics/,并在互联网上搜索更多信息。

所以基本上,你有一张地图,地图上的每个点都有一个向量,向量应该引导你到达目标。靠近障碍物的矢量远离它。

当你有一个静态障碍物时这很好,因为你只计算力场,每个点的矢量,一次,你不需要继续这样做。但是对于你的情况,我猜玩家可以移动,如果玩家移动,那么你必须再次计算向量,所以在你的情况下你必须计算地图每个点的向量,每次用户移动,所以这不是一个理想的解决方案,但它可以帮助您入门。

这个算法还有局部最小值的问题:

但我认为我之前通过的网页中已经解决了这个问题(他们有一个示例实现)。

如果不行,您可能想在 Google 中搜索 "Path planning algorithms",甚至 "path planning with moving obstacles" 并将玩家视为障碍。

编辑

您可以尝试像这样轻松实现它:

在这些图像中,您可以看到绿色的 AI、红色的玩家和黄色的目标。每个方格中的数字是到球门的距离。

在第一张图片中,您会看到目标中的距离从 1 开始,每平方递增一个,就像那样。

第二张图是一样的,但是玩家周围的方块的价值更高,高多少你决定,但我是那样做的,如果它与玩家相邻+2,+1如果再远一点

现在机器人只需要选择数字较小的方格。所选路径以灰色突出显示。

最后一张图片是对值求和的结果。

在下一个示例中,您可以看到 AI 实际上向左移动了一点,因为它离玩家太近了。

所以上面发布的内容对我想要实现的目标来说有点过分了。我不得不根除我的整个寻路系统。

我的问题的一个更简单的解决方案是,我没有检查离 AI 最近的转换,而是检查离我的玩家最远的转换。这虽然不完美,但得到了我满意的结果,并且通常会使 AI 运行 远离玩家。