首页 > 解决方案 > 跨地图的寻路 Unity C#

问题描述

我不知道该如何解释,但是,我正在尝试制作一个用户控制一个国家的游戏。

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

这是部分文件的屏幕截图

我无法发送整个东西,因为它太大了。

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

然后,在这种情况下,节点必须位于该省中心附近的某个地方,并且由于我发现使用 C# 生成这太复杂了,所以我制作了另一张地图

这是其中一部分的屏幕截图

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

从这里开始,留给我的只有联系。

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

标签: c#unity3d

解决方案


您可以尝试做的是 Unity 的内置导航网格系统。这是非常容易使用。

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

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


推荐阅读