添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

本期为大家推荐和 寻路 相关的课程,涉及多单位同时寻路方式探讨,如何将Unity编辑器导出Navmesh到Recast Navigation以及Recast Navigation的应用。

01

《Unity网游寻路方案—Recast Navigation的应用》

https://edu.uwa4d.com/course-intro/1/497

在Unity中,提供了专门的工具集NavMesh用于寻路导航。但是,这套工具有个最大的问题,就是算法、数据格式不开源,导致了在游戏服务端是无法使用的,无法和客户端保持一致的导航寻路逻辑。因此,在实际MMORPG开发中,像怪物的控制都是由服务器进行的,也就是说只能在服务器进行寻路计算,然后发给客户端,所以我们一般都会使用其他寻路方案。

Recast Navigation是目前在游戏中最常用的导航寻路开源库,通过使用Recast Navigation来生成客户端和服务器共同使用的Navmesh文件,使客户端和服务器能使用同样的寻路算法。在本教程中,我将以小白的视角来讲解,让导航寻路不再神秘,学习完本教程,完全可以0基础实现客户端和服务器的导航寻路。

适合从事RPG、MMO网游开发的程序员以及希望提升编程技能的初学者,学完本课程可以获得网络的寻路解决方案。

详情可戳>>

https://edu.uwa4d.com/course-intro/1/497

02

《Unity引擎Navmesh的导出及应用》

https://edu.uwa4d.com/course-intro/0/82

许多使用Unity引擎开发的游戏都有自己的寻路系统,而类似于MMO这种类型的游戏更是需要在客户端和服务器都要进行寻路运算。如果在基于Unity的客户端和自己的服务器中都使用自定义的某种相同的寻路算法实现,并且使用相同的数据,这是最容易想到的一种比较理想的方案。

但是,大家也很容易联想到另一种实现方案:客户端使用Unity引擎自带的NavMesh寻路系统,服务器使用开源实现的Recast Navigation寻路系统。为什么呢?

因为Unity提供的内建NavMesh系统编辑场景起来可视化程度高,足够方便好用;代码调用相关功能和控制也非常简单,很容易作为客户端的首选寻路方案;而我们已知Unity的NavMesh系统是基于Recast Navigation开源项目,所以已很容易想到服务器完全可以使用“看起来”和客户端一样的寻路系统。这两点看上去都没有问题,那么问题来了,Unity并没有任何可供用户直接将烘焙好的NavMesh导航数据导出成可供RecastNavigation系统使用的数据,该如何将这个数据提供给服务器使用呢?

这篇文章将向读者提供一个完整详细的解决方案。主要内容包括Recast Navigation的基本原理,Unity NavMesh导航数据导出的详细算法流程。同时附带的项目工程则包含了完整的导出算法的实现,数据存储,以及导出数据在Recast Navigation系统中的加载。

整个工程包含两部分:工程一是基于Recast Navigation系统的导出算法和实现工程,构建后将输出dll和bundle文件,作为Unity编辑器中的Native Plugin,来实现导出导航数据的功能,支持Win32/Win64/OSX64(OSX32需要自己使用旧版本 XCode 设置和编译),同时还包括一个修改版本的Recast Navigation Demo,可以加载从Unity导出的NavMesh来显示;工程二是一个Unity导出NavMesh的示例工程,使用了前者编译的插件来导出当前场景烘焙的NavMesh导航数据。

通过这个文章,你可以做到:

  • 在Windows和OSX下通过Unity编辑器导出和Unity NavMesh近乎一致的数据到Recast Navigation;

  • 即时预览导出结果;

  • 导出数据模块和加载接口位于独立文件,方便接入Recast Navigation系统;

  • 自定义导出格式和文件读写接口;

  • 自定义加载和导出数据接口。

暂时无法做到:

  • 在Recast Navigation系统中使用导出数据获得和Unity中完全一致的寻路结果,只能近似;

  • 导出Off-Mesh Link信息;

  • 导出Height Mesh信息。

阅读前请注意:这篇文章假设你已经使用过Recast Navigation系统以及Unity的寻路系统,并对基础的概念有所了解。本文并不会对Recast Navigation构建流程和原理做深入分析和讨论,而是基于该原理的某个步骤进行修改,针对这部分内容进行集中讨论。

详情可戳>>

https://edu.uwa4d.com/course-intro/1/82

03

《多单位同时寻路方式探讨》

https://edu.uwa4d.com/course-intro/0/216

玩过游戏的人都知道,游戏里的人物会和我们预想的那样,自己避开障碍物,选择一条最优路径抵达目的地,期间碰到其他角色也会相互避让,为什么他们会走出我们预期的路线,而不至于看起来“蠢蠢的”?这完美的寻路背后依靠的就是我们的寻路算法,一个好的算法就可以让我们的角色走得更“智能”。

本课程将要探讨的是多单位同时寻路的方式。首先,列举了A-star、Dijkstra和Floyd三种常用的寻路算法,并对A-star算法进行了详细介绍,然后分析了几种常用算法的优缺点,最后介绍了流场的生成以及流场效率优化的方向,同时提供了RTS千人寻路算法的实现方案,并附上了Demo帮助大家理解学习。

课程属于初级课程,旨在让大家了解目前常用的寻路方法和原理,在应用到实际项目中,依然需要根据自身项目情况进行修改和完善。

详情可戳>>

https://edu.uwa4d.com/course-intro/1/216

以上就是本期关于寻路课程的推荐内容,更多内容欢迎关注UWA学堂!

近期精彩回顾