67.导航系统概述

67.导航寻路系统-导航寻路系统概述


7.1 知识点

什么是导航寻路系统

Unity中的导航寻路系统是能够让我们在游戏世界当中让角色能够从一个起点准确的到达另一个终点,并且能够自动避开两个点之间的障碍物选择最近最合理的路径进行前往。导航寻路系统的本质就是在A星寻路算法的基础上进行了拓展和优化。

导航寻路系统要学习哪些内容

导航网格(NavMesh)的生成

  • 要想角色能够在场景中自动寻路产生行进路径,那么必须得先有场景地形数据,导航网格生成就是生成用于寻路的地形数据。

导航网格寻路组件(NavMesh Agent)

  • 寻路组件就是帮助我们根据地形数据计算路径让角色动起来的关键。
  • 当地形中间有断层,想让角色能从一个平面跳向另一个平面,网格连接组件时关键。

导航网格动态障碍物组件(NavMesh Obstacle)

  • 地形中可能存在的可以移动或动态销毁的障碍物需要挂载的组件。

7.2 知识点代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Lesson67_导航寻路系统_导航寻路系统概述 : MonoBehaviour
{

    void Start()
    {
        #region 知识点一 什么是导航寻路系统
        //Unity中的导航寻路系统是能够让我们在游戏世界当中
        //让角色能够从一个起点准确的到达另一个终点
        //并且能够自动避开两个点之间的障碍物选择最近最合理的路径进行前往

        //Unity中的导航寻路系统的本质
        //就是在A星寻路算法的基础上进行了拓展和优化
        #endregion

        #region 知识点二 导航寻路系统要学习哪些内容
        //1.导航网格(NavMesh)的生成——要想角色能够在场景中自动寻路产生行进路径,那么必须得先有场景地形数据,导航网格生成就是生成用于寻路的地形数据
        //2.导航网格寻路组件(NavMesh Agent)——寻路组件就是帮助我们根据地形数据计算路径让角色动起来的关键
        //3.导航网格连接组件(Off-Mesh Link)——当地形中间有断层,想让角色能从一个平面跳向另一个平面,网格连接组件时关键
        //4.导航网格动态障碍物组件(NavMesh Obstacle)——地形中可能存在的可以移动或动态销毁的障碍物需要挂载的组件
        #endregion
    }

}

7.3 Unity2022及以上版本

将导航寻路系统从Unity中剥离,需要在Package Manager窗口中添加对应内容

切换页签

搜索AI相关

点击安装

安装成功后,发现有新的和老的导航系统

Unity2022加入了一些新的规则和功能,为了方便我们的学习,我们还是使用老的一套方案

打开Navigation(Obsolete)窗口进行烘焙即可

新版本中,不能单独设置物体的寻路静态属性,只需要直接将参与烘焙的物体设置为静态对象即可



转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com

×

喜欢就点赞,疼爱就打赏