服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - Unity3D实现NavMesh导航网格寻路

Unity3D实现NavMesh导航网格寻路

2022-09-07 15:07Gary_Leong C#

这篇文章主要为大家详细介绍了Unity3D实现NavMesh导航网格寻路,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

navmesh(导航网格)是3d游戏世界中用于动态物体实现自动寻路的技术。

navmesh系统是人工智能的一种,它使用一个添加在游戏对象上或者作为游戏对象父物体的名为“导航网格代理”(navmeshagent)的组件来控制该游戏对象寻找能够通过的路径,并最终到达目的地。

自动寻路还可以实现绕过障碍、爬上与跳下障碍物、按类别寻找属于自己的道路、动态设置道路中的障碍等技术。

下面用一个简单的demo来介绍navmesh的应用:

1.在scene场景中添加cube设置场景,如图所示:

Unity3D实现NavMesh导航网格寻路

2.选择除了主角、目标以及摄像机、直线光以外的所有物体,在inspector窗口的右上角勾选static,成为静态物体,并设置成navigation static静态类型。

Unity3D实现NavMesh导航网格寻路

3.在主窗口中选择[window]→[navigation],打开navigation窗口。该窗口用于生成路径寻找所需要的导航网格结构,代理将根据该导航网格进行寻路计算。确保勾选了“navigation static”。点击bake进行烘培。

Unity3D实现NavMesh导航网格寻路

4.选择需要寻路的游戏对象,为它添加一个navmeshagent组件。

Unity3D实现NavMesh导航网格寻路

5.编写寻路代码,新建一个脚本:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//寻路网格导航
using unityengine;
using system.collections;
 
public class demonavigation : monobehaviour
{
 private navmeshagent agent;   //导航代理
 public transform transhero;
 
 // use this for initialization
 void start()
 {
  agent = this.getcomponent<navmeshagent>();
  if (agent && transhero)
  {
   agent.setdestination(transhero.transform.position);
  }
 }
}

运行结果:

Unity3D实现NavMesh导航网格寻路

这样就实现了navmesh导航网格寻路。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/Gary_888/article/details/51438947

延伸 · 阅读

精彩推荐
  • C#Unity UGUI通过摇杆控制角色移动

    Unity UGUI通过摇杆控制角色移动

    这篇文章主要为大家详细介绍了Unity3D基于陀螺仪实现VR相机功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    Htlas10172022-08-08
  • C#C#创建dll类库的图文步骤

    C#创建dll类库的图文步骤

    类库让我们的代码可复用,我们只需要在类库中声明变量一次,就能在接下来的过程中无数次地使用,而无需在每次使用前都要声明它。这样一来,就节省...

    C#教程网11792021-12-21
  • C#分享WCF聊天程序--WCFChat实现代码

    分享WCF聊天程序--WCFChat实现代码

    无意中在一个国外的站点下到了一个利用WCF实现聊天的程序,作者是:Nikola Paljetak。研究了一下,自己做了测试和部分修改,感觉还不错,分享给大家...

    C#教程网8202021-11-02
  • C#c# winform treelistview的使用(treegridview)实例详解

    c# winform treelistview的使用(treegridview)实例详解

    这篇文章主要介绍了c# winform treelistview的使用(treegridview),本文通过实例代码给大家详细介绍,需要的朋友可以参考下...

    波谷6192022-02-13
  • C#C#线程倒计时器源码分享

    C#线程倒计时器源码分享

    这篇文章主要为大家分享了C#线程倒计时器源码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    王子先生7272022-02-19
  • C#C#开发之Socket网络编程TCP/IP层次模型、端口及报文等探讨

    C#开发之Socket网络编程TCP/IP层次模型、端口及报文等探讨

    我们在讲解Socket编程前,先看几个和Socket编程紧密相关的概念...

    C#菜鸟教程5722020-12-19
  • C#c#开发cad预览图块步骤详解

    c#开发cad预览图块步骤详解

    在本篇文章里小编给大家分享了关于c#开发cad预览图块步骤和相关知识点,需要的朋友们学习下。...

    C#教程网3682022-07-07
  • C#C#使用foreach循环遍历数组完整实例

    C#使用foreach循环遍历数组完整实例

    这篇文章主要介绍了C#使用foreach循环遍历数组,结合完整实例形式较为详细的分析了C#遍历数组的相关技巧,需要的朋友可以参考下...

    梦断难寻9732021-11-29