为动态障碍物和玩家造成的障碍寻找路径?


11

嗨,我正在Unity 5中创建TD,并且在寻路方面需要一些帮助。

我将为我的AI 使用Arons A *寻路,这使我能够使用动态对象并在运行时更新路径。但是,在我的游戏中,我希望玩家能够使用特殊的炮塔来阻挡小兵,这将迫使小兵攻击“障碍塔”而不是到达目的地。

我怎样才能完成这样的事情?

图片更清晰: 在此处输入图片说明

Answers:


22

我没有看过Aaron的A *的具体实现,但是使用普通的A *,您可以将“街区塔楼”作为可通过地形包括在内,但要更新启发式方法,以使“成本”比普通瓷砖高得多(因此AI将评估是否更容易破坏该块并继续进行,还是通过未阻止的路径简单地绕行。

然后,您将需要更新您的AI,以便当敌人试图从普通砖块移动到“塔形砖块”时,它会自动攻击直到被摧毁。


8
+1我要补充一点,如果有任何区别,您可能希望根据X数量和要消灭它的奴才类型来计算封锁塔的成本。如果最低级别的小兵需要5秒钟才能摧毁塔,但一个超级小兵可以在1秒内完成,则塔的预设成本可能不准确。
模糊逻辑

0

如果您正在寻找的是一种嘲讽的塔,您可以向其添加一个按原样设置的对撞机,当小兵进入触发器时,他们被编写为攻击塔的脚本。

如果您希望小兵仅在没有其他路径时攻击塔楼,则当路径被阻塞并且如果A *返回空值时将调用A *来计算另一条路径,则可以脚本化敌人以查找所有嘲讽的塔楼,并且瞄准他们。

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.