跨地图Unity C#的寻路

问题描述 投票:-1回答:1

我不知道该怎么解释,但是,我正在尝试制作一款由用户控制国家的游戏。

游戏基本上是由国家组成的地图,这些国家都控制着不同的省份,这些省份在bmp文件中定义,每个省份用不同的颜色表示,

here is a screenshot of part of the file

我无法发送整个邮件,因为它太大了。

主要的游戏功能之一是士兵,可以在这些省份之间移动并用来占领敌方领土或执行其他类似任务。为了使这些士兵能够在地图上移动,我需要他们能够找到通往目标省份的道路。我之前没有做过很多关于路径查找的实验,但是据我了解,像A *或Dijkstra的算法这样的路径查找算法将是我需要使用的算法,并且这些算法需要节点,代表位置和功能的连接。

在这种情况下,节点必须位于中心附近省份中的某个位置,并且由于发现它太复杂而无法使用C#生成,因此我制作了另一张地图

here is a screenshot of part of that one

其中节点由黑色像素表示,并且我计划创建一个脚本来检查哪些像素为黑色,并将其设置为节点。

从这里开始,我唯一剩下的就是联系。

现在,我需要一种确定连接的方法,老实说,我知道如何做到这一点。如果有人可以向我提出解决方案,我将不胜感激,并在此先感谢您!

c# unity3d
1个回答
0
投票

您可以尝试做的是在构建Nav Mesh系统中使用Unity。它非常易于使用。

基本上,您将创建一个道路系统-道路,河流等。然后您可以烘烤该区域以进行路径查找。本质上它是如何工作的,您将拥有一个代理,并且可以设置他必须去的位置。然后它将找到带有烘烤区域的路径。

然后您要做的就是右键单击以设置位置。这可以通过射线投射来完成。祝您好运,希望对您有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.