c# - 跨地图的寻路 Unity C#
问题描述
我不知道该如何解释,但是,我正在尝试制作一个用户控制一个国家的游戏。
游戏基本上由一张地图组成,该地图由国家组成,这些国家都控制着不同的省份,这些省份在 bmp 文件中定义,每个由不同的颜色表示,
我无法发送整个东西,因为它太大了。
游戏的主要功能之一是士兵,可以在这些省份移动并用于占领敌方领土或执行其他类似任务。为了让这些士兵能够在这张地图上移动,我需要他们能够找到通往目标省份的路径。我之前没有对寻路进行太多实验,但据我了解,我需要使用像 A* 或 Dijkstra 算法这样的寻路算法,并且这些算法需要节点、代表位置和连接才能发挥作用。
然后,在这种情况下,节点必须位于该省中心附近的某个地方,并且由于我发现使用 C# 生成这太复杂了,所以我制作了另一张地图
其中节点由黑色像素表示,我计划创建一个脚本来检查哪些像素是黑色的并将它们设置为节点。
从这里开始,留给我的只有联系。
我现在需要一种方法来确定联系,老实说,我知道我将如何做到这一点。如果有人可以向我提出解决方案,我将不胜感激,并在此先感谢您!
解决方案
您可以尝试做的是 Unity 的内置导航网格系统。这是非常容易使用。
本质上,您创建了一个路径系统 - 道路、河流等。然后您可以烘焙该区域以进行路径查找。从本质上讲,它的工作原理是您将拥有一个代理,并且您可以设置他必须去的位置。然后它将找到带有烘焙区域的路径。
然后,您所做的就是使用右键单击来设置位置。这可以通过光线投射来完成。祝你好运,希望这会有帮助。
推荐阅读
- java - 如何将数据从 Firestore 添加到我的微调器
- php - 如何在 PHP 中读取这个多维关联数组
- java - JDA 语音活动跟踪
- pytorch - Pytorch 条件数据加载器
- c - 如何在 C 中的循环中正确使用 scanf 和数组?
- c++ - 从不同接口到服务器的 C++ 套接字
- android - Google 登录 API 不一致地将 givenName 和 familyName 返回为“null”
- .htaccess - htaccess 隐藏目录名不起作用
- javascript - '今天'和'昨天'的momentjs语言环境
- javascript - 获取上一个活跃的li