UNITY 的Navigation面板技术是什么?做什么的?

在2D游戏中我们常常使用A星算法,基于方形网格进行寻路

(图:2D游戏中的A星寻路)

但是在3D游戏中,场景巨大2D的方形网格寻路虽然可用,但效率极低

这时候,用NavMesh导航網格寻路是最佳的解决方案

(图:unity3d中的寻航寻路网格)

在unity3d中的导航寻路组件Navigation,可以根据3D场景生成用于寻路的导航网格NavMesh

该库使用十分广泛,基于C++语言编写Unity引擎官方的寻路,unreal的UDK的寻路均基于它开发的。

下载到本地我们主要看一下它的RecastDemo示例。编译后运行生成的RecastDemo.exe界面如下:


}

想问一个关于unity3d navigation bake不成功的问题主偠的问题是怎么烘培山地,我烘培出来的 路径怎么都是破碎的 走路都走不了如下图所示:

  • 还没有人评论,欢迎说说您的想法!
}

马上注册结交更多好友,享用哽多功能让你轻松玩转社区。

您需要 才可以下载或查看没有帐号?

这篇博客文章的主要目的是给你一个完整的、先进的概念:NavMesh可以在Unity中莋什么以及如何在Unity中加速你的复杂导航。

我希望你已经浏览了我以前的博客并对Unity的NavMesh有一个基本的想法。如果你还没有读过我强烈建議你对NavMesh有个基本的了解。

现在我们来看看这些技巧

导航网中的一个区域仅仅是网格的一部分。您可以在导航窗口中找到Area选项卡

正如你所看到的,在Unity中有三个内建的区域您可以更改所有区域的成本值,但不可以为Walkable(您不可能不顾成本地进入该区域)

如果需要,也可以定义洎己的区域一些例子可以是泥浆、水、沙子等。

在导航中一个区域的成本起着决定性的作用,因为我们的代理将会尝试遵循最少可能嘚成本路径

现在让我们看看如何使用它们:

你会看到在你烘焙了NavMesh之后的效果。

以下是你可以参考的链接:

网状链接是在两个不同网格之间创建连接的链接换句话说,您可以在多个网格之间使用这些链接进行跳转

如果你想更好地控制导航行为,它们可以自动生成或者你也鈳以通过非网格链接组件来生成它们。

让我来告诉你在学习如何创造它们的过程中,它能带来什么不同

此图像显示自动生成的Off-Mesh链接。


現在要手动创建一个链接,请遵循以下步骤:

在层次结构中创建两个空的游戏对象

将网格链接组件添加到其中任何一个。

您可以看到有兩个变量名为Start & End分配相应的游戏对象。这个图像显示了我创建的一个链接

如果你创建的链接不是一个有效的链接(两端都放置在一个网格表面上),那么链接的颜色将会变成灰色而不是黑色为了看到效果,只要把连杆向上(+ y方向)的任何一端移动注意颜色的变化。

我想你现在巳经有了不同之处如果您选择自动链接生成,那么Unity将创建所有可能的链接以连接到可能不适合您的情况的网格。如果您想要一个特定嘚路线您可以使用Off网格链接组件。您可以选择这两个方法中的任意一个来满足您的需求

直到现在我们处理的是静态对象,当游戏运行時它们不会移动

但是,如果我们有一个移动的物体我们需要成为我们的导航网的一部分怎么办?

NavMesh障碍组件就是这个的答案。这个过程很簡单

首先向对象添加NavMesh障碍组件。

你现在看不出有什么不同检查carve选项,你应该看到网格上有个洞

具有NavMesh代理组件的字符将避免在寻路过程中的这一部分。

一些例子可以在敌人或移动的门上巡逻

我希望你能得到我想要传递的关于Unity的NavMesh的所有东西。这就是我结束这篇文章的地方你开始在导航网格上做实验。

在你的游戏中尝试一下如果你对这个帖子有任何疑问或者建议,不要忘记发表评论

有游戏开发的想法?你还在等什么?现在与我们联系,很快就会看到这个想法我们公司被评为印度最好的公司之一。

扫描下方二维码关注官方微信~每日都有精选干货与你分享呦~
}

我要回帖

更多关于 面板 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信