Unity3D中2D Sidescroller的人工智能

时间:2014-10-28 00:51:59

标签: c# unity3d 2d artificial-intelligence unity3d-2dtools

我目前正在Unity中制作一个2D侧面滚动游戏(所以所有的精灵都是从侧面查看的)。

我有程序生成的地形(所以想想Terraria-esque),我希望能够点击我的一个瓷砖并有一个精灵路径。

然而,精灵需要知道以下事项:

  1. 是否可以访问瓷砖(也就是说它不是完全地下或天空中的随机方式)
  2. 到达那里的最短途径是什么。
  3. 我目前将我的瓷砖存储为短阵列。

    知道这一点,A *是我追求的最佳算法吗?有没有人有任何其他好的信息/提示,从哪里开始研究这类事情?

    我的主要概念难点是让AI知道是否可以访问磁贴。

    感谢任何帮助/指示!

1 个答案:

答案 0 :(得分:1)

A *是找到最短路径的好方法,但是用来查找是否存在路径很重要。这是因为它在意识到没有路径之前正在搜索整个可访问空间。您可以使用this online tool来使用不同的搜索算法。

快速入侵您可以用来判断每个不同空间的路径是否是存储ID,所有节点都可以互相访问。这些ID很容易通过遍历所有可访问节点的递归函数进行分配。在递归终止之后,再次使用来自另一个尚未拥有任何ID的空间的ID重新启动它。希望以下图片澄清了我的观点:

11111¤22222¤
111¤¤¤222¤¤¤
1¤¤¤3¤¤¤¤¤44
¤¤3333¤¤4444

其中¤是墙,而数字是空格的ID。当然,您需要将存储从短阵列更改为其他内容,因为您需要为每个节点存储额外的短路。